redis 键空间通知使用
场景: 微信token存到redis里面,快到期时请求并更新,关键是如何触发请求。
原来想通过遍历redis,但是。。。
后来发现redis里面有键空间通知功能,其中有key到期发出通知的功能,所有想利用这个事件来触发更新的请求。
问题: 1)我要subscribe那个频道?__keyevent@0__直接监听数据库?
2)我on到expire时间后,redis返回是什么
刚用redis求指教啊
正在做实验,稍后上结果
有个地方被markdow转译了上图
启动客户端
1)启动node redis客户端
var redis = require("redis");
var client = redis.createClient({
host: '127.0.0.1',
port: '6379'
});
client.subscribe('__keyevent[@0__](/user/0__):expired');
client.on('message', function(event, data, data1) {
console.log(evnet);
console.log(data);
console.log(data1)
});
2)shell redis客户端
#src/redis-cli
#config set notify-keyspace-events Ex
#psubscribe '__keyevent[@0__](/user/0__):expired'
模拟redis数据变化
在另一个客户端里做操作,主要是expire操作
#src/redis-cli
# set foo bar
#expire foo 1
##两个客户端的输出 node-redis
__keyevent[@0__](/user/0__):expired
foo
undefined
shell客户端
1) "pmessage"
2) "__keyevent[@0__](/user/0__):expired"
3) "__keyevent[@0__](/user/0__):expired"
4) "foo"
结论
返回key的名字
重点
1)config set notify-keyspace-events Ex 配置监听的事件空间,配什么就会发出什么
2)psubscribe ‘__keyevent@0__:expired’
client.subscribe(’__keyevent@0__:expired’);
监听的内容,数据库事件,还能怎么组合我也不知道,刚刚接触
3).on事件 message
pmessage 区别