DiskCache磁盘和文件支持的缓存库

联合创作 · 2023-09-30 21:02

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
浏览 1
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报