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

​ 注意事项:

  • 键通知仅在键被修改的时候才会产生事件,而不是有命令就通知。
  • pub/sub并不是可靠的事件通知,如果没有订阅者,发送的事件将会丢失。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容