2019 Python 计算生态六月推荐榜
19年6月10日 · 计算生态推荐榜 6296 人阅读
看见更大的世界,遇见更好的自己
See a better world to meet better for ourselves.
缓存,最早特指CPU缓存曾经是用在超级计算机上的一种高级技术。随着科技的不断发展,如今缓存的概念已经蔓延到IT领域的各个角落。CPU和主内存之间、内存和硬盘之间、硬盘与网络之间等等都离不开Cache的身影。面对无处不在的Cache,如何高效的管理Cache就成了程序员们的必修课。幸运的是,Python生态中有着丰富的缓存库供大家选择,这门必修课,我们势在必“过”。
2019年6月,5G网络蓄势待发,高速缓存也密布在网络空间的各个角落。好事者特别推荐10款优秀的Python第三方库,帮助大家感受缓存世界的高速与便捷,轻松掌控缓存管理。真正做到一库在手,缓存都有。
Beaker
Beaker是一个用于缓存和会话的库,用于Web应用程序和独立的Python脚本和应用程序。 它附带了WSGI中间件可以轻松地与基于WSGI的Web应用程序一起使用,以及缓存装饰器,以便与任何基于Python的应用程序一起使用。
项目主页:https://github.com/bbangert/beaker
django-cache-machine
Cache Machine通过ORM实现Django模型的自动缓存和失效。它是为zamboni开发的,是addons.mozilla.org到Django的端口。使用模型mixin类和自定义缓存管理器启用缓存。失效通过维护每个对象的依赖缓存条目的“刷新列表”来工作。
项目主页:https://github.com/django-cache-machine/django-cache-machine
django-cacheops
Diango cacheops是一个具有自动颗粒化事件驱动失效功能的ORM。它支持自动或手动查询集缓存和颗粒化事件驱动的自动失效,适用redis作为ORM缓存的后端,redis或文件系统作为简单时间失效的后端。
项目主页:https://github.com/Suor/django-cacheops
dogpile.cache
Dogpile.cache是Beaker的下一代替代品,由同一作者开发。它为各种各样的高速缓存后端提供了一个通用接口,此外还提供了API钩子将这些高速缓存后端与dogpile的锁定机制集成在一起。
项目主页:https://dogpilecache.sqlalchemy.org/en/latest/
HermesCache
HermesCache是一个Python高速缓存库。它的设计目标包含基于标签的失效、dogpile effect保护功能、线程安全的、简单的设计、简单灵活的装饰器作为终端用户的API和实现多个后端的接口等。
项目主页:https://pypi.org/project/HermesCache/
diskcache
DiskCache是一个Apache2许可的磁盘和文件支持的缓存库,用纯Python编写并与Django兼容。它为缓存提供了千兆字节的存储空间,通过一些数据库库和内存映射文件,缓存性能可以匹配并超过行业标准解决方案,不需要C编译器或运行其他进程,测试可以100%覆盖单元测试和数小时的压力。
项目主页:http://www.grantjenks.com/docs/diskcache/
pylibmc
Pylibmc是一个来自TangentOrg的libmemcached接口的Python包装器。Pylibmc故意使接口尽可能接近python-memcached,以便应用程序可以直接替换它。并利用了其他可配置行为、数据压缩、经过实际检验的GIL保留、一致分发和二进制memcached协议等。
项目主页:https://github.com/lericson/pylibmc
cacheout
Cacheout是一个实现了多种缓存机制的Python库。包括FIFO,LIFO,LRU,MRU,LFU,RR等。使用缓存管理器方便的访问多个缓存对象,使用模块级缓存对象时,可为运行时设置重新配置缓存设置。
项目主页:https://github.com/dgilland/cacheout
wrapcache
Wrapcache是一个基于Python装饰器的方法缓存系统,用于缓存Python方法的输出值,可以支持复杂数据类型,可以缓存到Redis中、Python dict、LUR算法存储中。
项目主页:https://github.com/hustcc/wrapcache
pymemcache
Pymemcache是一个全面、快速、纯Python的缓存客户端。它完整实现了memcached文本协议,包含灵活、模块化和简单的序列化和反序列化方法。
项目主页:https://github.com/pinterest/pymemcache
Python3Turtle