Redis 工具
项目描述
Redis Tools (retools)
retools 是一组Redis工具包。它的目标是提供一系列始终100%单元测试、快速、高效且利用Redis功能的Python工具。
当前 retools 中的工具
缓存
全局锁
未来实施计划
一个类似于Celery的工作/作业处理系统,但基于Ruby的Resque系统的工作方式。
缓存
一个高性能的缓存系统,可以作为Beaker缓存的直接替代品。与Beaker的缓存不同,它利用Redis进行分布式写锁dogpile预防。它还收集命中/未命中缓存统计信息,以及记录哪些函数和参数使用了哪些区域。
示例
from retools.cache import CacheRegion, cache_region, invalidate_function CacheRegion.add_region('short_term', expires=3600) @cache_region('short_term') def slow_function(*search_terms): # Do a bunch of work return results my_results = slow_function('bunny') # Invalidate the cache for 'bunny' invalidate_function(slow_function, [], 'bunny')
与Beaker的区别
与Beaker的缓存系统不同,这个系统是专门为Redis构建的。因此,它增加了Beaker不具备的几个功能
分布式写锁,以确保在集群中一次只有一个写者更新缓存。
命中/未命中缓存统计信息,以帮助您了解哪些缓存利用效率较低(可能需要更高的过期时间,或者根本不值得缓存)。
非常小巧、紧凑的代码库,100%单元测试覆盖率。
锁定
基于 Chris Lamb 的示例 实现的Redis基于的锁,作为Python上下文管理器。
示例
from retools.lock import Lock with Lock('a_key', expires=60, timeout=10): # do something that should only be done one at a time
许可协议
retools 根据 MIT 许可协议提供。
变更日志
0.4.1 (02/19/2014)
错误修复
正确支持StrictRedis与ZADD(用于限制器)。Bernardo Heynemann的补丁。
0.4 (01/27/2014)
功能
添加了限制器功能。由Bernardo Heynemann提供的请求 #22。
0.3 (08/13/2012)
错误修复
为RedisLock调用redis.expire设置适当的过期值。由Mike McCabe修复。
使用functools.wraps来保留cache_region的文档字符串。由Daniel Holth修复。
API更改
在QueueManager类中添加了get_job/get_jobs方法,用于获取作业信息或获取队列的作业列表。
0.2 (02/01/2012)
错误修复
缓存关键修复,防止旧值永久显示。感谢Daniel Holth追踪到问题。
实际上在Redis中设置缓存值的过期时间。默认为1周。
功能
缓存统计信息现在是可选的,可以禁用以略微减少存储/检索缓存数据所使用的Redis查询。
添加了带事件支持的worker/job队列系统的第一个版本。
内部
对Connection进行了大量重构,使其不再是一个类单例,而是创建并默认使用全局全局_connection实例。
提高了条件覆盖率到100%(通过instrumental)。
向后不兼容
更改默认全局Redis连接已更改语义,而不是使用Connection.set_default,应直接设置全局_connection的redis属性。
import redis from retools import global_connection global_connection.redis = redis.Redis(host='myhost')
不兼容性
从invalidate_region中删除了clear参数,因为从集合中删除键但不删除命中统计信息可能导致在Redis中积累数据,这些数据除了运行在生产环境中的.keys()之外没有其他简单的方法可以删除。
从invalidate_callable(invalidate_function)中删除了deco_args,因为它实际上不需要,因为名称空间已经包含在可调用对象中,可以对其进行无效化。
0.1 (07/08/2011)
功能
以类似Beaker的方式缓存,带有命中/未命中统计信息,由Redis全局写锁支持,以防止犬群效应,同时提供旧值。
Redis全局锁
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分发
构建分发
retools-0.4.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db62e47248d023536ab9b1391381e3c2cd169bc109cf5ae35c5a2e4f7fc54e4b |
|
MD5 | 7ebecd90e2322e8d72f49f3979431a00 |
|
BLAKE2b-256 | 46f412e5d96efa502d44ab7893d87329ebd3a297ed7506cfabee50c46f09dfb8 |