分享

python-diskcache-支持SQLite和文件的缓存后端,查找速度比memcached和redis更快

 CNStudent 2020-12-14

  DiskCache是Apache2许可的磁盘和文件支持的缓存库,用纯Python编写,并且与Django兼容。

  2020年基于云的计算将提高内存容量。当进程争用内存时,磁盘上会留下千兆字节的空余空间。这些进程中有Memcached(有时是Redis)用作缓存。利用空磁盘空间进行缓存不是很好吗?

Django是Python最受欢迎的Web框架,并带有多个缓存后端。不幸的是,Django中基于文件的缓存已被破坏。剔除方法是随机的,大型缓存会重复扫描缓存目录,该目录随着增长而线性降低。您是否真的可以允许它花60毫秒的时间将密钥存储在包含一千个项目的缓存中?

在Python中,我们可以做得更好。我们可以用纯Python做到这一点!

注意:微型基准有其位置,但不能替代实际测量。DiskCache提供了缓存基准测试来捍卫其性能要求。避免了微优化,但是您的里程可能会有所不同。

DiskCache有效地使GB的存储空间可用于缓存。通过利用坚固的数据库库和内存映射文件,缓存性能可以达到并超过行业标准解决方案。无需C编译器或运行其他进程。性能是一项功能,测试具有100%的单元测试覆盖率和数小时的压力。

功能

  • 纯Python

  • 充分记录

  • 基准比较(替代品,Django缓存后端)

  • 100%的测试覆盖率

  • 压力测试时间

  • 绩效很重要

  • Django兼容的API

  • 线程安全和进程安全

  • 支持多种驱逐策略(包括LRU和LFU)

  • 键支持“标签”元数据和逐出

  • 在Python 3.8上开发

  • 在CPython 3.5、3.6、3.7、3.8上测试

  • 在Linux,Mac OS X和Windows上测试

  • 使用Travis CI和AppVeyor CI测试

快速入门

使用pip安装DiskCache很简单:pip install diskcache

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

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

  建立在缓存数据类型之上的是Deque和Index,它们作为Python的collections.deque和的跨进程,持久替代品而工作 dict。这些实现序列和映射容器基类:

  最后,一些配方使用底层缓存提供了用于跨进程同步。提供具有缓存防踩踏功能的备忘录,跨进程锁定和跨进程限制等功能:

  Python的文档字符串是一种入门的快速方法,但不能替代DiskCache教程和DiskCache API参考。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多