一个python类,用于使用redis或其他键值存储,并缓存读取繁重工作负载的值。

redis-pubsub-dict的Python项目详细描述


PyPI version

使用redis或其他键值存储的python类,作为 字典和本地缓存值,以便读取繁重的工作负载。 深受pylru的启发。

用法

其思想是删除或更新 PubSubRedisDictPubSubCacheManager将更新匹配 所有PubSubCacheManager实例中的缓存键。 PubSubCacheManager因此将维护最近使用的缓存 使用lru或直接使用dict()的键。这将减少 缓存的任何读取的往返延迟和网络开销 钥匙。

RedisDictRedisDict应该与 redis.StrictRedisrediscluster.StrictRedisCluster。使用 prefix用于管理redis密钥命名空间。

重新发现

就像一本普通的字典,但是是联网的。初始化不需要 dictionary或iterable暂时需要连接和命名空间 信息。

rc=StrictRedisCluster(startup_nodes=[{"host":"redis","port":"6379"}])reddict=RedisDict(rc,'namespace')# you can setreddict[1]=1reddict[2]=[1,2,3]reddict['hello']='world'reddict[('complex',1)]={'I':{'Am':{'Quite':['a','complex',{'object':{}}]}}}# get somewhere elsereddict[1]reddict['1']# note its the same as reddict[1]reddict[('complex',1)]reddict["('complex', 1)"]# the key is str(('complex',1))# deletedelreddict[1]# .. ect

pubsubredisdict

类似于RedisDict,但会将密钥更新和删除事件发布到 <namespace>/[update|delete]频道。

redpubsub=PubSubRedisDict(rc,'namespace')# ect as before

公共子化学经理

类似于pylry.WriteThroughCacheManager,但从 当它从 <namespace>/[update|delete]频道。

cache=pylru.lrucache(10)# maybe more than 10redstore=PubSubRedisDict(rc,'namespace')redcache=PubSubCacheManager(redstore,cache)# ect as before# see the cacheprintdict(redcache.cache)

进一步使用

您可以将RedisDictPubSubRedisDict连接到 pylru.WriteBackCacheManager获取支持redis的字典 仅在“刷新”时或项目从^{tt5}弹出时写入redis$ 用于写密集型工作负载。不过,还需要做更多的工作 增加了pubsub机制,因为有困难的情况需要考虑, 比如当缓存变脏时会发生什么 存储密钥已更新?

限制

  • 所有键都是字符串。
  • msgpack用于封送对象到redis,因此msgpack 对象限制适用。尽管你可以给模块打补丁 loadsdumps方法(如果您愿意)。
  • publish将发布到所有正在使用的字典实例,其中 没有分区,所以写和更新是昂贵的。你可以来 使用分区策略来改进这一点。
  • 发表的文章最终以被关注的现金收场。有可能 在客户端发布更改和密钥 正在另一个客户端缓存中更新。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用多个参数的枚举   从Oracle到Redis的java复制表   java如何保护tomcat服务器中的db用户名和密码。xml   java如何使用注册密钥保护移动应用程序?   java在什么情况下超类不应该是抽象的?   java Backspace键在macOS上的Scala REPL中不起作用   arduino Java+Uno+RFID:调用方法读取Java中的RFID   带有where语句中集合的java JPA查询   java如何向基于Tyrus注释的客户端添加请求头   java对我的二进制搜索算法的反馈   java重新访问数据库时文件的内容不正确   用户在字符串中输入值后退出While循环(Java)   java如何在Maven中的多个项目之间共享项目依赖关系?   java Close从未在数据库上被明确调用   在java中从文件读入布尔矩阵   Java:如何使用父节点将XML流拆分为小型XML文档。VTDXML