redis键空间通知消息详解和例子

接收键空间通知有2种情况:

1、一种是接收指定键值所执行的命令,在配置文件中体现是:   notify-keyspace-events K[命令集]               ;K代表是监听键值,监听其中命令集包括了:

g : 常规命令 del expire rename等等

$:  字符串命令

l : 列表命令

s:集合命令

h:hash命令

z:有序集合命令

x :超时命令

例子1):

在配置文件(redis.conf)中设置:

#notify-keyspace-events ""
notify-keyspace-events K$
表明我们需要监听字符串所执行的命令;

客户端1监听:       

127.0.0.1:6379> SUBSCRIBE __keyspace@0__:message
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "__keyspace@0__:message"
3) (integer) 1
1) "message"
2) "__keyspace@0__:message"
3) "set"
1) "message"
2) "__keyspace@0__:message"
3) "append"
1) "message"
2) "__keyspace@0__:message"
3) "append"                 


客户端2执行:

127.0.0.1:6379> set message 123
OK
127.0.0.1:6379> get message
"123"
127.0.0.1:6379> append message "-3444555"
(integer) 11
127.0.0.1:6379> append message "-3444555"
(integer) 19


可以看出例子1:我们执行 修改的命令有:set   append 都在客户端1进行返回。


2、监控指定的命令,配置文件中体现:notify-keyspace-events E[命令集]      ;E代表监听命令,后面的命令集合上面的一样

例子1)、

配置文件:

#notify-keyspace-events ""
notify-keyspace-events Elg

表明我们监控list列表基础命令


客户端1监听:

127.0.0.1:6379> SUBSCRIBE __keyevent@0__:del
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "__keyevent@0__:del"
3) (integer) 1
1) "message"
2) "__keyevent@0__:del"
3) "list2"
1) "message"
2) "__keyevent@0__:del"
3) "mylist1"
1) "message"
2) "__keyevent@0__:del"

3) "list1"


客户端2执行:

127.0.0.1:6379> keys *
1) "list2"
2) "mylist1"
127.0.0.1:6379> del list2 mylist1
(integer) 2
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> LPUSH list1 abc
(integer) 1
127.0.0.1:6379> LPUSH list1 abc def
(integer) 3
127.0.0.1:6379> LRANGE list1 0 -1
1) "def"
2) "abc"
3) "abc"
127.0.0.1:6379> del list1
(integer) 1
127.0.0.1:6379> 










你可能感兴趣的:(redis)