在redis py lib之上构建的redis 3.0.0集群库

alauda-redis-py-cluster的Python项目详细描述


#redis py cluster

此客户端为redis cluster提供了一个客户端,该客户端已添加到redis 3.0中。


此项目是antirez的"redis rb cluster"端口,具有许多附加功能。原始源代码可以在https://github.com/antrez/redis rb cluster

gitter聊天室找到:[![Gitter](https://badges.gitter.im/grokzen/redis py cluster.svg)](https://gitter.im/grokzen/redis-py-cluster?联合技术手册来源=徽章和联合技术手册媒介=徽章和联合技术手册活动=公关徽章)

[![构建状态](https://travis-ci.org/grokzen/redis-py-cluster.svg?branch=master)(https://travis-ci.org/grokzen/redis-py-cluster)[![覆盖状态](https://coveralls.io/repos/grokzen/redis py cluster/badge.png)(https://coveralls.io/r/grokzen/redis-py-cluster)[![PYPI版本](https://badge.fury.io/py/redis py cluster.svg)(http://badge.fury.io/py/redis py cluster)




说明。

可在[此处](docs/upgrading.rst)找到每个发布版本之间的升级说明


可在[此处](docs/release notes.rst)找到下一版本和所有较旧版本的更改日志



/>```
$pip安装redis py cluster也可以在[examples/basic.py](examples/basic.py)

`` python
>;>from rediscluster import strictrediscluster

>;>中找到;群集发现至少需要一个节点。建议使用多个节点。
>;>;启动节点=[{"主机":"127.0.0.1","端口":"7000"}

>;>;rc=strictrediscluster(启动节点=启动节点,解码响应=true)

>;>;rc.set("foo","bar")
true
>;>;打印(rc.get("foo")
ba)
````









/>1.3.4(2017年3月5日)
---------

*包现在在生成发行版时作为轮子和源包生成。
*修复了"nodemanager.keyslot()"中某些键类型的问题。
*添加对"pubsub"子命令"channels"、"numsub[arg][args…"和"numpat"的支持。
*add method`set_result_callback(command,callback)`允许更改默认的回复回调,与从redis py继承的'set_response_callback(command,callback)`用于响应的方式相同。
*node manager现在接受定义的max_connections变量,因此connections t从该类发出的hat使用相同的变量。
*修复了在python 3.x上运行并使用decode_responses=false时群集检测中的一个错误。
从redis返回的群集结构数据现在已被转换,无论以后要设置/获取的数据是使用什么。
*添加sslclusterconnection以通过tls/ssl连接到redis cluster
*添加新选项,使nodemanager在节点移动时跟踪群集,避免查询第一次创建客户端对象时提供的启动节点的原始列表
。这可以使客户机在aws上更容易处理漂移的集群,但如果集群不一致,则客户机在split brain事件期间与错误的节点组交谈的风险更高。此功能是实验性的,请小心使用。

1.3.3(2016年12月15日)
——————————————————————————————————————————————————————/>
1.3.2(2016年11月27日)
————————————————————————————————————————————————————————————————————————现在它的工作原理与redis py中的相同。
请注意,当前用于将ip地址/dns名称传递到startup_nodes变量的规则与通过from_url方法应用的规则相同。
*添加了跳过全覆盖检查的选项。当服务器禁用config redis命令时,此标志非常有用。
*修复了方法*群集插槽*在响应中包含节点ID的较新redis版本中中断的错误。方法与旧版本和新版本的redis不兼容。



1.3.1(2016年10月13日)
----


*重建的断方法扫描程序。以前的测试很小,无法检测出问题,但在测试该方法时,无法对较大的数据集进行更正。(korvus81,grokzen,redwhitemiko)
*管道中应重试的错误,如连接错误、移动错误、错误和ASK错误,现在会返回到strictrediscluster.execute_命令中的单个操作逻辑。(72平方)。
*移动了重新初始化步骤并将其计数器放入nodemanager中,以便可以跨管道操作正确计数(72平方)。



1.3.0(2016年9月11日)
---------

*删除了redisclustermgt类和文件
*修复了使用管道时的错误具有redis cluster类(ozahata)的行
*在travis测试期间将redis服务器提升到3.0.7
*在另一个python redis集群项目中添加了关于相同模块名的文档。
*修复要跟踪某个节点的连接但该节点尚未存在或
由于在另一个线程中重新硬化而被删除。(ashishbaghudana)
*修复了需要node_id参数且返回类型
应在redis中转换为bool_ok的bool命令时使用"cluster…"命令的错误。
*add back gitter chat room link
*add new client commands
-cluster reset_all_nodes
*命令cluster_delslots现在确定每个插槽上的群集碎片,并将每个插槽删除
命令发送到正确的节点。命令已更改参数规范(有关详细信息,请参阅upgrading.rst)
*修复了哈希键时的错误,如果键是python 3字节字符串,则会导致它路由到群集中的错误插槽(fossilet,grokzen)
*修复了重新初始化nodemanager时的错误,该命令将使用olD节点缓存,而不是刚刚解析的新缓存(Monklof)



>1.2.0(2016年4月9日)
---------

*放弃对Python3.2的维护支持。
*删除有利于72squared维护的repo的异常文件
*添加对受密码保护的支持cluster(etng)
*从代码中删除断言(gmolight)
*修复了为每个strictrediscluster实例分配常规连接池的错误。
*重新编写pfcount,使其在所有参数指向同一哈希槽时可以正常工作redis py 2.10.5中的ange已经添加到代码库中。
*不再需要管道内部的线程。我们在读取比线程性能更好的响应之前将压缩命令写入所有节点,特别是当我们向群集添加更多节点时。
*允许传入自定义连接池
*为群集连接池提供默认的最大连接值*(2**31)*
*travis现在同时测试redis 3.0.x和3.2.x
*添加简单的ptpdb调试脚本,以便更容易测试客户端
*修复sdiffstore(mt3925)中的错误
*使用scan iter修复在写入期间返回重复密钥的错误
*实现所有"cl"uster…"命令作为客户端类中的方法
*客户端现在遵循服务侧边设置"cluster require full coverage=yes/no"(baranbartu)
*将pubsub实现(发布/订阅命令)从使用单个节点更改为现在确定通道名称的哈希槽,并使用它连接到集群中的节点。不使用此模式的其他客户端将与此客户端不完全兼容。已知的限制是模式
订阅无法正常工作,因为模式无法提前知道所有可能的通道名称。
*将所有文档转换为readthedocs
*重新设计连接池逻辑,使其更类似于redis py。这还解决了pubsub的一个问题,并且连接
从未释放回可用连接池。


1.1.0(2015年10月27日)
----


*重构了异常处理和异常类。
*添加了只读模式支持,可以重新调整使用从节点的ADS。
*修复ClusterConnectionPool和ClusterReadOnlyConnectionPool的repr\u
*将每个节点的最大连接数参数添加到ClusterConnectionPool,以便每个节点而不是整个群集计算最大连接数参数。
*改进线程按插槽获取连接和按节点获取连接的安全性方法(iandyh)
*改进了向所有节点发送命令(如info)时的错误处理。现在,连接将retry_on_timeout作为一个选项,并在超时时重试一次。(iandyh)
*增加了对脚本加载、脚本刷新、脚本存在和evalsha命令的支持。(alisaifee)
*提高线程安全性,以避免在多个线程内运行一个客户端对象并同时对
群集进行重新硬处理时出现异常。
*修复请求错误处理,以便在重新硬操作期间,它现在真正向下一个节点发送请求。这一改进也适用于流水线命令。
*改进了流水线命令中的线程安全性,并使用代码注释更好地解释了流水线中的逻辑。

ecause lib现在被认为是稳定的/生产就绪的。

0.3.0(2015年6月9日)
----


*Simple Benchmark现在使用docopt进行cli解析
*New Make Target运行一些基准"Make Benchmark"
*Simple Benchmark现在支持管道测试
*重命名的redis cluster-->;strictrediscluster
*在集群模式下实现向后兼容的redis.redis类。它被命名为redis cluster,从0.2.0更新到0.3.0的每个人都应该咨询docs/upgrading.md以了解如何更改代码。
*添加了有关redis cluster的管道的综合文档
*元检索命令(插槽、节点、信息)。(iandyh)

<0.2.0(2014年12月26日)
----


*已将管道代码移动到新文件中。
*代码现在使用适当的群集连接池类来处理所有节点和连接,类似于redis py的工作方式。
*更好地支持pubsub。现在,所有客户端都将与同一服务器通信,因为如果pubsub命令与群集中的随机服务器通信,那么它将无法可靠地工作。
*更好的结果回调和节点路由支持。不再有丑陋的装饰符。
*使用非ascii字符时修复keyslot命令。
*添加bitpos支持,需要redis py 2.10.2或更高版本。
*修复了流浪用户无法通过共享文件夹生成包的错误。
*更好地支持clusterdown错误。(neuron)
*使用线程执行并行管道。(72平方)
*增加了对测试和开发的流浪支持。(72平方)
*在重新硬化操作期间提高客户端的稳定性(72平方)


0.1.0(2014年9月29日)
----

*初始版本
*首次发布已上载到PYPI

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

推荐PyPI第三方库


热门话题
从Java应用程序登录MySql   JavaGSON图形适配器和运行时适配器   java我可以在日期验证器程序的focusLost()中调用focusgoven()吗?   使用InMemoryTestContainerFactory时为JerseyTest设置baseUrl   java为什么通过安卓应用程序在facebook好友墙上发帖返回错误?   javajavafx:画一个摆动的低蚀刻边框可能吗?   调整大小过程中发生java OpenImaj OutOfMemoryError   java如何将结果集的行存储到HASHMAP中   在java库中使用依赖项注入好吗?   多线程java同步多线程问题   jdbc如何编写一个java应用程序,将一个sql查询和一个数字作为输入并启动它   java为什么不支持运行时。freeMemory()仅在创建大型对象时更改?   JaxB从XML到Java类的自动解析   JavaSpring表单与html表单   java无法使用DefaultHttpClient发送大文件