Python中的 redis keyspace 通知

介绍

Redis是内存中的数据结构存储,用于缓存、高速数据摄取、处理消息队列、分布式锁定等等。

与其他内存存储相比,使用Redis的优势在于它提供了持久性和数据结构,比如列表、集合、排序集合和散列。

在这篇文章中,介绍一个Redis keyspace通知的简短概述。并演示如何配置Redis来接收它们。并展示如何在python中订阅Redis通知

在开始之前,请安装并启动Redis服务器,如下所述:https://redis.io/topics/quickstart

启用通知

默认情况下,redis的通知事件是关闭的,在终端执行以下命令开启:

$ redis-cli config set notify-keyspace-events KEA
OK  

KEA字符串表示启用了所有可能的事件。要查看每个字符的含义,请查看文档

CLI 可以在特殊模式下工作,允许您订阅一个通道以接收消息。

现在检查事件是否起作用:

# 用于检查事件
# psubscribe '*'表示我们想订阅所有带有模式*的事件

$ redis-cli --csv psubscribe '*'     
Reading messages... (press Ctrl-C to quit)  
"psubscribe","*",1

开启一个新的终端,设置一个值

127.0.0.1:6379> set key1 value1  
OK  

在上一个终端,会看到:

$ redis-cli --csv psubscribe '*'     
Reading messages... (press Ctrl-C to quit)  
"psubscribe","*",1
"pmessage","*","__keyspace@0__:key1","set"
"pmessage","*","__keyevent@0__:set","key1

发现通知的工作中的

复述

Redis的键盘空间通知从2.8.0版起就可以使用了。对于更改任何Redis键的每个操作,可以配置Redis将消息发布到发布/订阅。然后可以订阅这些通知。值得一提的是,事件仅在确实修改了键的情况下才生成。例如,删除不存在的键将不会生成事件。

以上收到三个事件:

"psubscribe","*",1
"pmessage","*","__keyspace@0__:key1","set"
"pmessage","*","__keyevent@0__:set","key1
  • 第一个事件意味着已经成功订阅了reply中作为第二个元素给出的通道。1 表示目前订阅的频道数量。
  • 第二个事件是键空间通知。在keyspace通道中,接收事件集的名称作为消息。
  • 第三个事件是键-事件通知。在keyevent通道中,接收到key key1的名称作为消息。

Redis Pub/Sub

猜你喜欢

转载自www.cnblogs.com/leguan1314/p/9642859.html