redis集群的一些特性

fluster的Python项目详细描述


一个redis集群,当单点故障让您感到慌乱时使用。

概述

redis fluster是一个非常有限的redis池/集群实现,它使一些常见用例的分片变得简单。

快速启动

importredisfromflusterimportFlusterClustercluster=FlusterCluster([redis.Redis(6379),redis.Redis(6380)])whileTrue:forkeyin('foo','bar'):try:client=cluster.get_client(key)client.incr(key,1)client.get(key)exceptConnectionError:client=cluster.get_client(key)client.incr(key,1)client.get(key)time.sleep(1)

有限,如何?我想用这个做任何事!

简单地说,不要这样做。fluster维护到各种redis实例的连接池,并将根据提供的shard key返回到一个实例的连接。如果一个掉下来,它会被放在一个罚篮里,直到它回来,这时它又可以使用了。

在not point,键是重复的,当节点删除/连接时,键也不会重新分配。如果您正在编写incr语句,而节点关闭,那么现在您正在将它们写入另一个实例。一旦原始实例返回,您就得到了同一个键的两组值。这将是无缝的,你的程序不会崩溃,所以也许这就足够了。

那它有什么用呢?

缓存和临时数据。理想的情况是下降比重复数据更糟糕。如果一个redis fluster节点宕机,并且有两个缓存副本,那么这可能不是问题。你已经在数据上设置了过期时间,对吧?

同样,如果使用列表将队列分发到多个redis实例,那么一个删除和加入也不是问题。当它关闭时,队列中的项目会转到其他地方,如果您的工作人员从所有可用实例中读取数据,则不会丢失任何内容,或者完全不同。

redis集群呢?

看起来很棒!不幸的是,它很新,还没有准备好投入生产使用。如果运气好的话,这将实现它的所有承诺,而这个项目可能会悄然消失。

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

推荐PyPI第三方库


热门话题
java如何在饼图的图例中只包含每个类别的长描述?   json Grails应用程序,可以从Java DAO服务访问数据库如何访问控制器中的服务?   java将大型远程数据库表同步到本地数据库表,该表包含字段“lastModificationTime”   java如何在JFrame中创建交互式地图   web服务如何创建异步Java Restlet web服务?   java开始读取特定字节   java在jTable中返回不带SQL的搜索结果(带DAOMock)   jakarta ee java ee MVC模式,模型和视图是否直接相互通信   当由负载平衡器处理时,java Spring引导CSRF失败   java为什么JavaMail连接超时太长   java IzPack需要从安装程序安装JDK/JRE版本   java如何创建一个只接受实现Iterable的元素的方法   java spring数据存储库无法使用idClass保存实体   java如何从列表中删除重复项?   java在SocketChannel中发送大量数据时,影响速度的因素有哪些?   算法分支和绑定错误:节点1无法转换为java。可比的   java使用邮件API从Swing应用程序创建Jar文件   java枚举与简单常量声明?