DiskCache

磁盘和文件支持的缓存库
授权协议 Apache-2.0
开发语言 Python
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 不详
投 递 者 曾飞雨
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

DiskCache 是一个磁盘和文件支持的缓存库,用纯 Python 编写,并与 Django 兼容。2021 年的云计算非常重视内存。随着进程争夺内存,磁盘上留下了千兆字节的空白空间。在这些进程中,有用作缓存的 Memcached(有时是 Redis)。最好使用空磁盘空间进行缓存。

DiskCache 有效地使数千兆字节的存储空间可用于缓存。通过利用坚如磐石的数据库和内存映射文件,缓存性能可以匹配并超越行业标准解决方案。不需要 C 编译器或运行另一个进程。性能是一项功能,测试具有 100% 的覆盖率,包括单元测试和数小时的压力测试。

特性:

  • 纯 Python
  • 完整记录
  • 基准比较
  • 100% 测试覆盖率
  • 压力测试
  • Django 兼容 API
  • 线程安全和进程安全
  • 支持多种驱逐策略(包括 LRU 和 LFU)
  • 密钥支持“标记”元数据和驱逐
  • 在 Python 3.9 上开发
  • 在 CPython 3.6、3.7、3.8、3.9 上测试
  • 在 Linux、macOS 和 Windows 上测试
  • 使用 GitHub Action 进行测试

快速开始

使用 pip 安装 DiskCache 很简单:

$ pip install diskcache

您可以使用 Python 的内置帮助功能访问解释器中的文档:

>>> import diskcache
>>> help(diskcache)                             # doctest: +SKIP

DiskCache 的核心是用于缓存的三种数据类型。缓存对象管理 SQLite 数据库和文件系统目录以存储键值对。FanoutCache 提供了一个分片层来利用多个缓存,DjangoCache 将它与 Django 集成:

>>> from diskcache import Cache, FanoutCache, DjangoCache 
>>> help(Cache) # doctest: +SKIP 
>>> help(FanoutCache) # doctest: +SKIP 
>>> help(DjangoCache) # doctest: +SKIP

建立在缓存数据类型之上的是 Deque 和 Index,它们作为 Pythoncollections.deque和 dict. 这些实现了序列和映射容器基类:

>>> from diskcache import Deque, Index
>>> help(Deque)                                 # doctest: +SKIP
>>> help(Index)                                 # doctest: +SKIP
  • 这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! 传送门:https://github.com/Chocolate1999/Front-end-learning-to-organize-notes 往期精选: 【亡羊补牢】计算机网络灵魂之问 第1期

  • 在chrome浏览器中的控制台Network中size栏通常会有三种状态 1.from memory cache 2.from disk cache 3.资源本身的大小(如:1.5k) 那么问题来了 1.三种区别在哪里;2.浏览器采取不同措施的原则是什么;3.其他浏览器的策略 下面分别讲述以上三个问题 1.三种区别在哪 from memory cache:字面理解是从内存中,其实也是字面的含义,这

  • 参考阅读: Glide多种组合使用方式记录–没有全部亲测,大家可以根据实际需要选用 Glide设计模式之工厂模式1【ModelLoaderFactory】 Glide设计模式之工厂模式2【DiskCache.Factory】 Glide工厂模式3【TransitionFactory】【Transition】 Glide设计模式之工厂模式4总结 DiskCache.Factory 包路径:com.b

  • 实际用途 本人在做一个资讯交流类的vue项目中,有一个需求是点击资讯的删除按钮,将会删除这条资讯,听起来很简单,点击删除后,带上id去请求删除的接口,并将dom删除,但是问题来了,我确实删了这条资讯,dom也删除了,但当我点击了其他资讯再点击返回进入这个页面时,它又在视图里出现了!!!再刷新后,它又没了?? 找了半天原因,原来是因为浏览器启用了from disk cache(从磁盘缓存中获取)这个

  • devServer: { host: "0.0.0.0", port: 8000, // 端口号 https: true, // 允许https接口代理 open: true, hotOnly: true, // 热更新 proxy: { "/api/v1": { target: "https://xxx.xxxx.xx", changeOrigi

  • 将下述代码加入到util/disk.py文件中 from cassandra.cqltypes import BytesType from diskcache import FanoutCache, Disk,core from diskcache.core import io from io import BytesIO from diskcache.core import MODE_BINAR

 相关资料
  • 想象一下,如果没有磁盘缓存的世界。当用户访问网页的时候,每次浏览器都需要从网站下载网页,图片,JS等资源,这其实费力又不讨好。解决这一问题的方法就是将之前浏览器下载的资源保存下来,存到磁盘中,以备今后使用。当然,资源有时效性,也会变的不再有效,所以有相应的退出机制来解决这一问题。在现代浏览器中,绝大多数浏览器都有磁盘缓存机制,因为它确实能够提高网页的加载速度,能够省去了网络的时间。 特性 为了适应

  • 本文向大家介绍Android缓存之DiskLruCache磁盘缓存的使用,包括了Android缓存之DiskLruCache磁盘缓存的使用的使用技巧和注意事项,需要的朋友参考一下 DiskLruCache和LruCache不同的是,LruCache是内存缓存,而DiskLruCache是指磁盘缓存,顾名思义就是把文件缓存到磁盘,也也就是手机的内存卡中。接下来先简单介绍DiskLruCache的使用

  • 在我的Android应用程序中,我使用Volley在自定义列表视图中加载图像。 当我多次刷新(删除所有项目并加载tiems)listview时,我的应用程序就会被这条消息杀死 我该怎么修好它?

  • 这里的磁盘缓存功能是指使用缓存磁盘来存储租户常用的一些数据。例如,假设你通过gateway azure设置访问一个对象并下载下来进行缓存,那接下来的请求都会直接访问缓存磁盘上的对象,直至其过期失效。此功能允许Minio用户: 对象的读取速度性能最佳。 任何对象的首字节时间得到显著改善。 开始 1. 前期条件 安装Minio - Minio快速入门。 2. 运行Minio缓存 磁盘缓存可以通过修改M

  • 问题内容: 在iPad项目中,我正在研究该应用程序的内部,该应用程序显示一个.html文件,该文件链接到.css文件,即 这些文件存储在iPad本地,但从远程服务器获取。我注意到,它会无限期地缓存.css文件,并且无论何时更改都会拒绝加载新文件。我曾经更改过文件的名称只是为了使其重设,但是从长远来看,这是不可接受的。 有没有一种方法可以防止将CSS文件缓存在中?甚至更好的是,有什么方法可以说何时缓

  • 问题内容: 在一个课堂项目中,我的老师告诉我们进行一些代码评估(C语言),并且这样做,我们需要在测试期间禁用磁盘缓存。 当前我正在使用Ubuntu 12.04,该怎么做? 谢谢。 问题答案: 您需要root用户权限才能执行此操作。您可以运行命令以禁用写缓存,在该驱动器中必须将驱动器替换为设备: 您还可以像这样选择性地禁用对单个分区的写缓存:。 要重新启用缓存,只需使用参数。 男子hdparm的,人

  • 7.1 cache_dir指令 cache_dir指令是squid.conf配置文件里最重要的指令之一。它告诉squid以何种方式存储cache文件到磁盘的什么位置。cache_dir指令取如下参数: cache_dir scheme directory size L1 L2 [options] 7.1.1 参数:Scheme Squid支持许多不同的存储机制。默认的(原始的)是ufs。依赖于操作

  • 一个好的HTTP缓存策略可以极大地提高一个web应用的性能及客户端的体验。谈到HTTP缓存,它主要是与HTTP的响应头'Cache-Control'相关,其次另外的一些响应头比如'Last-Modified'和'ETag'等也会起一定的作用。 HTTP的响应头'Cache-Control'主要帮助私有缓存(比如浏览器端缓存)和公共缓存(比如代理端缓存)了解它们应该如果缓存HTTP响应,以便后用。