Redis notify-keyspace-events键空间通知使得客户端可以通过订阅频道或模式,来接收那些以某种方式改动了 Redis 数据集的事件。事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发。
比如操作:del mykey
键空间频道的订阅者将接收到被执行的事件的名字,在这个例子中,就是 del 。
键事件频道的订阅者将接收到被执行事件的键的名字,在这个例子中,就是 mykey 。
格式为:
__keyspace@0__:mykey del
__keyevent@0__:del mykey
0 - 代表数据库0
mykey - 指改动redis的事件,比如expire过期,del删除。
配置在redis config文件中,参数是notify-keyspace-events。
字符 发送的通知
------------------------------------------------------
K 键空间通知,所有通知以 <a href="mailto:__keyspace@__keyspace@<db>__ 为前缀
E 键事件通知,所有通知以 <a href=" mailto:__keyevent@__keyevent@<db>__ 为前缀
g DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知
$ 字符串命令的通知
l 列表命令的通知
s 集合命令的通知
h 哈希命令的通知
z 有序集合命令的通知
x 过期事件:每当有过期键被删除时发送
e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送
A 参数 g$lshzxe 的别名
<a href="mailto:__keyspace@__keyspace@<db>__ 为前缀
E 键事件通知,所有通知以 <a href=" mailto:__keyevent@__keyevent@<db
简单的案例:
<a href="mailto:__keyspace@__keyspace@<db>__ 为前缀
E 键事件通知,所有通知以 <a href=" mailto:__keyevent@__keyevent@<db会话1:
执行下列语句,订阅消息:__keyevent@0__:expired
127.0.0.1:6442> psubscribe __keyevent@0__:expired
Reading messages... (press Ctrl-C to quit)
会话2:
执行下列语句,设置一个值并指定过期时间。
127.0.0.1:6442> setex test 10 value
OK
十秒钟后会话1会打印下列信息:
127.0.0.1:6442> psubscribe __keyevent@0__:expired
Reading messages... (press Ctrl-C to quit)
1) "pmessage"
2) "__keyevent@0__:expired"
3) "__keyevent@0__:expired"
4) "test"
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25105315/viewspace-2123495/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25105315/viewspace-2123495/