Redis奇幻之旅(三)11. 键通知

11. 键通知

​ 我们希望得到“某个键的所有操作”或者“某个操作的所有键”的时候就可以用到键通知了。键通知其实用的就是pub/sub功能,举个例子:我们给Redis发送 set hello,这个命令就会触发类似下面的两个PUBLISH命令:

PUBLISH __keyspace@0__:hello set
PUBLISH __keyevent@0__:set hello

​ 在频道中使用 keyspace 前缀的叫做键空间通知;使用 keyevent 前缀的,叫做 键事件通知。

​ 默认情况下,键通知通知是不启用的,因为一旦启动就会给Redis产生更多的负担,如果我们在需求中有需要的话可以在redis.conf中配置notify-keyspace-events或者使用CONFIG SET命令来开启通知。

​ 开启通知可以根据需求定制化开启,具体的配置如下:

K     键空间事件,以__keyspace@__前缀发布。
E     键事件事件,以__keyevent@__前缀发布。
g     通用命令(非类型特定),如DEL,EXPIRE,RENAME等等
$     字符串命令
l     列表命令
s     集合命令
h     哈希命令
z     有序集合命令
x     过期事件(每次键到期时生成的事件)
e     被驱逐的事件(当一个键由于达到最大内存而被驱逐时产生的事件)
A     g$lshzxe的别名,因此字符串AKE表示所有的事件。

​ 注意事项:

  • 键通知仅在键被修改的时候才会产生事件,而不是有命令就通知。
  • pub/sub并不是可靠的事件通知,如果没有订阅者,发送的事件将会丢失。

你可能感兴趣的:(Redis奇幻之旅(三)11. 键通知)