DiskCache磁盘和文件支持的缓存库
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
评论