使用 redis-py-cloud 操作 redis5 stream 数据

2019-04-04 10:47:37 +08:00
 copyangle

redis-py-cloud 是基于 redis-py-cluster 开发的 redis 集群包,特别支持 redis5.0 的 stream 新特性。目前支持的命令有 xadd, xread, xreadgroup, xack 等。

包下载地址:

https://github.com/ChinaGoldBear/redis-py-cloud

或 pip install:

pip install redis-py-cloud

基本操作:

1.连接集群

from rediscluster import RedisCluster

'''连接集群''' startup_nodes = [{"host": "ip3", "port": "7000"}, {"host": "ip2", "port": "7000"}, {"host": "ip1", "port": "7000"}, ]

REDIS_CLUSTER = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)

2.xadd

REDIS_CLUSTER.xadd("mystream", "*", 100,{"name": "data"})

3.xread

REDIS_CLUSTER.xread("mystream","*",1) # 非阻塞读取最后一条

REDIS_CLUSTER.xread("mystream","*",1,0) # 阻塞读取最后一条

REDIS_CLUSTER.xread("mystream","*",10,0) # 阻塞读取最后 10 条

REDIS_CLUSTER.xread("mystream","1527849629172-0",1,0) # 阻塞读取特定消息

  1. xrange

REDIS_CLUSTER.xrange("mystream","-","+") # -表示最小值, +表示最大值

REDIS_CLUSTER.xrange("mystream","1527849629172-0","+") # 指定最小消息 ID 的列表

REDIS_CLUSTER.xrange("mystream","-","1527849629172-0") # 指定最大消息 ID 的列表

5.xreadgroup

REDIS_CLUSTER.xreadgroup("group_name","consumer_name","mystream",">",0) # 消息组读取,0 表示阻塞读取

REDIS_CLUSTER.xreadgroup("group_name","consumer_name","mystream",">") # 消息组读取,非阻塞读取

REDIS_CLUSTER.xreadgroup("group_name","consumer_name","mystream","1527849629172-0") # 消息组特定消息读取,非阻塞读取

6.xack

REDIS_CLUSTER.xack("mystream","counsumer_name","1527849629172-0") # ack 消费组消息

其他 stream 命令请参考:

https://blog.csdn.net/enmotech/article/details/81230531

作者:copyangle 来源:CSDN 原文: https://blog.csdn.net/copyangle/article/details/81975975 版权声明:本文为博主原创文章,转载请附上博文链接!

1404 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/551953

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX