Redis 键空间通知
来源:互联网 发布:windows flash player 编辑:程序博客网 时间:2024/05/16 06:05
键空间通知:(发送即忘(fire and forget)策略)
键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。
以下是一些键空间通知发送的事件的例子:
所有修改键的命令。
所有接收到 LPUSH 命令的键。
0 号数据库中所有已过期的键。
事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发, 因此所有支持订阅与发布功能的客户端都可以在无须做任何修改的情况下, 直接使用键空间通知功能。
对于每个修改数据库的操作,键空间通知都会发送两种不同类型的事件。
比如说,对 0 号数据库的键 mykey 执行 DEL 命令时, 系统将分发两条消息, 相当于执行以下两个 PUBLISH 命令:
而订阅第二个频道 __keyevent@0__:del 则可以接收 0 号数据库中所有执行 del 命令的键。
配置:
因为开启键空间通知功能需要消耗一些 CPU , 所以在默认配置下, 该功能处于关闭状态。
可以通过修改 redis.conf 文件, 或者直接使用 CONFIG SET 命令来开启或关闭键空间通知功能:
当 notify-keyspace-events 选项的参数为空字符串时,功能关闭。
当参数不是空字符串时,功能开启。
notify-keyspace-events 的参数可以是以下字符的任意组合, 它指定了服务器该发送哪些类型的通知:
K 键空间通知,所有通知以 __keyspace@<db>__ 为前缀
E 键事件通知,所有通知以 __keyevent@<db>__ 为前缀
g DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知
$ 字符串命令的通知
l 列表命令的通知
s 集合命令的通知
h 哈希命令的通知
z 有序集合命令的通知
x 过期事件:每当有过期键被删除时发送
e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送
输入的参数中至少要有一个 K 或者 E , 否则的话, 不管其余的参数是什么, 都不会有任何通知被分发。
键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。
以下是一些键空间通知发送的事件的例子:
所有修改键的命令。
所有接收到 LPUSH 命令的键。
0 号数据库中所有已过期的键。
事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发, 因此所有支持订阅与发布功能的客户端都可以在无须做任何修改的情况下, 直接使用键空间通知功能。
对于每个修改数据库的操作,键空间通知都会发送两种不同类型的事件。
比如说,对 0 号数据库的键 mykey 执行 DEL 命令时, 系统将分发两条消息, 相当于执行以下两个 PUBLISH 命令:
PUBLISH __keyspace@0__:mykey del PUBLISH __keyevent@0__:del mykey订阅第一个频道 __keyspace@0__:mykey 可以接收 0 号数据库中所有修改键 mykey 的事件,
而订阅第二个频道 __keyevent@0__:del 则可以接收 0 号数据库中所有执行 del 命令的键。
配置:
因为开启键空间通知功能需要消耗一些 CPU , 所以在默认配置下, 该功能处于关闭状态。
可以通过修改 redis.conf 文件, 或者直接使用 CONFIG SET 命令来开启或关闭键空间通知功能:
当 notify-keyspace-events 选项的参数为空字符串时,功能关闭。
当参数不是空字符串时,功能开启。
notify-keyspace-events 的参数可以是以下字符的任意组合, 它指定了服务器该发送哪些类型的通知:
K 键空间通知,所有通知以 __keyspace@<db>__ 为前缀
E 键事件通知,所有通知以 __keyevent@<db>__ 为前缀
g DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知
$ 字符串命令的通知
l 列表命令的通知
s 集合命令的通知
h 哈希命令的通知
z 有序集合命令的通知
x 过期事件:每当有过期键被删除时发送
e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送
输入的参数中至少要有一个 K 或者 E , 否则的话, 不管其余的参数是什么, 都不会有任何通知被分发。
eg: cli: config set notify-keyspace-events KEA psubscribe '__key*__:*' 然后, 只要在其他终端里用 Redis 客户端发送命令, 就可以看到产生的通知了: "pmessage","__key*__:*","__keyspace@0__:foo","set" "pmessage","__key*__:*","__keyevent@0__:set","foo"
0 0
- Redis 键空间通知
- 10Redis键空间通知(keyspace notifications)
- Redis键空间通知(keyspace notifications)
- redis键空间通知消息详解和例子
- KeySpaceNotification 键空间通知
- 远程启动Redis,报错不能配置键空间通知(keyspace notifications)
- Redis源码解析:09redis数据库实现(键值对操作、键超时功能、键空间通知)
- 键空间通知(keyspace notification)
- 键空间通知(keyspace notification)
- springmvc订阅redis键过期消息通知
- Redis--keyspace notification(键空间)
- Redis基础学习--Redis 事务(watch命令)、生存时间、排序、消息通知("发布/订阅"模式)、管道、节省空间
- 空间焦点事件通知
- Redis消息通知
- Redis-9.8 数据库通知
- redis过期通知
- Redis基础之消息通知
- 【数据库开发】Redis消息通知
- 面向对象学习记录
- Java基础---JDK下载及JAVA环境搭建
- Spark 的整体流程
- WebMagic/JMX&爬虫监控
- 数字、字符串去重
- Redis 键空间通知
- phonegap- phonegap2.9.0 演示例子
- addEventListener的冒泡与捕获
- 学习JS(3)
- How to install makeinfo/textinfo
- CUDA编程的错误处理
- Java nio Netty实现基本的收发包
- 矩形A + B
- Cocos2d-x 3.2 屏幕适配解决方案