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

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报