类型:LinuxApp,创建时间:Jan. 26, 2016, 5:38 p.m.
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/99/。
在某些情况下,我们往redis服务器里面存储了大量的数据。这么大量的数据,我们怎么样看到数据发生了哪些变化呢?新版本的redis提供了事件监听,可以把数据内所有的事件变化都打印出来。它的使用方法很简单。
首先打开发送数据事件。这个特性会额外消耗CPU,所以一般不要用。推荐使用命令行打开这个功能:
$ redis-cli redis> config set notify-keyspace-events KA
根据[http://redis.io/topics/notifications]的说明,参数有多种:
K Keyspace events, published with __keyspace@<db>__ prefix. E Keyevent events, published with __keyevent@<db>__ prefix. g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ... $ String commands l List commands s Set commands h Hash commands z Sorted set commands x Expired events (events generated every time a key expires) e Evicted events (events generated when a key is evicted for maxmemory) A Alias for g$lshzxe, so that the "AKE" string means all the events.
参数里面要么存在K
要么存在E
,A
表示监听所有的命令发出的事件。有大量的命令都会发出事件通知。分别使用一不同的字母来表示不同的数据类型命令。比如Kls
表示监听List和Set两种数据类型的事件。
开始监听事件。redis-cli
会把接下来的所有变化都打印出来。
redis> psubscribe '__key*__:*'
psubscribe
使用正则表达式来匹配来监听的事件。这里表示匹配所有的事件。发出的事件大概是这样子的:__keyspace@0__:foo
,其中@0
表示位于0号数据库,而foo
则表示发生变化的key。redis-cli
还会打印发出此事件的命令。
想要结束了,按Ctrl+C
就行。不过似乎也会把redis-cli
也直接关掉。最好是重新运行一下redis-cli
,然后禁用这个特性:
redis> config set notify-keyspace-events ""
标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/99/。
暂时还没有任何评论。