异步redis的redis/sentinel高可用性包

asyncio-redis-ha的Python项目详细描述


用于PEP 3156python事件循环的高可用性包和sentinel客户端。

此包是asyncio-redis异步、非阻塞客户端的包装器/插件,用于 redis服务器。它依赖于异步(pep 3156),因此需要python 3.3或3.4。如果您是Asyncio新手,那么签出 the asyncio documentation先。

功能

  • 异步redis的哨兵支持ontop:
    • 角色
    • 哨兵
    • 从机
    • 按名称获取主地址
  • 扩展的redis支持(3.x版)
    • 角色
  • 大部分测试
    • 来自asyncio-redis的所有测试都是绿色的
    • 涵盖并保证在相同条件下运行的新功能
    • 手动测试故障转移方案

依赖关系

带有sentinel解决方案的redis集群需要Redis 3.x

这个包使用并且在很大程度上依赖于asyncio-redis, 因为依赖于包内部 (由于需要更改以支持哨兵操作) 当前要求固定在版本0.14.3

在确保内部兼容后,我将手动更新此依赖项。

路线图

  • 在主连接丢失时实现池重新初始化
  • 添加重复/回退包装作为包的一部分(coroutine或decorator)
  • 为故障转移方案提供自动化测试
  • 实现抢占式连接重构 (基于sentinel守护进程的通道事件的即时故障转移检测)
  • Hiredis支持

用户指南

用法与asyncio-redis包池对象的用法相同, 除了入口点的初始化之外

初始化连接管理器

c=yield fromConnectionManager.create(cluster_name='mymaster',sentinels=[('172.17.0.4',26379),('172.17.0.6',26379),('172.17.0.7',26379)],poolsize=5)#  start using just like asyncio-redisyield fromc.set('key','value')

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

推荐PyPI第三方库


热门话题
Spring、JPA和hibernate的java问题   如何将JMC(Java任务控制)连接到ubuntu中的远程JVM?   java如何将eventListener的结果存储为对象?   java在安卓中,点击一个按钮,我如何停止发送循环中发送的消息   java打开活动中的电子邮件   使用velocity模板打印JasperReports   java无法在自定义信息窗口上拨号   java如何在jsonb postgresql中查询并转换为谓词JPA   java更好地理解J2EE环境中的异常和日志记录   java打印多个文件   java无法使用API v2 Foreman 1.7.1创建主机   HTML单一提交类型按钮在java中不起作用   java调用静态方法的实例   ViewPage中替换片段的java问题   C++在java中创建数组(2D)而不初始化内部数组   java如何在NetBeans中同时更改变量名称的多个实例?   如何完成这个关于集合的java程序   java如何选择使用selenium从下拉菜单动态生成的元素?