具有一些功能的Redis集群
项目描述
当单点故障让你感到困惑时,Redis集群。
概述
Redis Fluster是一个非常有限的Redis池/集群实现,使得对一些常见用例的分区变得简单。
快速入门
import redis
from fluster import FlusterCluster
cluster = FlusterCluster([redis.Redis(6379), redis.Redis(6380)])
while True:
for key in ('foo', 'bar'):
try:
client = cluster.get_client(key)
client.incr(key, 1)
client.get(key)
except ConnectionError:
client = cluster.get_client(key)
client.incr(key, 1)
client.get(key)
time.sleep(1)
有限,怎么?我想用它做所有事!
简单来说,不要这样做。Fluster维护了一个连接到各种Redis实例的连接池,并将根据提供的分区键返回一个连接。如果一个实例失败,它将被放入惩罚箱,直到它恢复,此时它再次可用。
在任何时候都不会复制键,当节点掉线或加入时也不会重新分配。如果你正在编写INCR语句,而节点掉线了,现在你将把它们写入另一个实例。一旦原始实例返回,你将得到同一键的两个值集合。这将无缝进行,你的程序不会崩溃,所以也许这已经足够了。
那么它有什么好处呢?
缓存和短暂数据。理想情况是,掉线比重复数据更糟糕。如果一个Redis fluster节点掉线,而你有两个缓存的副本,这可能不是问题。你为数据设置了有效期,对吧?
同样,如果你正在使用列表将队列分发到多个Redis实例,那么一个实例掉线并加入并不成问题。在它掉线期间排队的项目被发送到其他地方,如果你的人工智能从所有可用实例中读取,那么什么都没有丢失,或者实际上并没有太大的不同。
Redis集群呢?
看起来很棒!遗憾的是,它非常新,还不适合生产使用。如果一切顺利,它将实现所有的承诺,这个项目可以悄悄消失。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
fluster-0.1.1.tar.gz (21.5 kB 查看哈希值)
构建分布
fluster-0.1.1-py2.py3-none-any.whl (32.3 kB 查看哈希值)