ITPub博客

首页 > 数据库 > NoSQL > Redis学习 - Key SPace Event功能

Redis学习 - Key SPace Event功能

原创 NoSQL 作者:dbs101 时间:2016-08-15 14:51:14 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/25105315/viewspace-2123495/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Redis 保护模式
请登录后发表评论 登录
全部评论
喜欢oracle、redis、mysql、pg数据库

注册时间:2010-12-18

  • 博文量
    94
  • 访问量
    473124