Node.js 使用正则表达式的事件Redis键空间通知
我想在redis密钥上生成与提供的模式匹配的expire事件。我在NodeJS中使用redis 我曾尝试使用redis PSU订阅模式,但它并不能解决我的问题Node.js 使用正则表达式的事件Redis键空间通知,node.js,redis,Node.js,Redis,我想在redis密钥上生成与提供的模式匹配的expire事件。我在NodeJS中使用redis 我曾尝试使用redis PSU订阅模式,但它并不能解决我的问题 var redisClient = redis.createClient('redis://redis') redisClient.config('set', 'notify-keyspace-events', 'KEA') redisClient.psubscribe('__keyevent@0__:expired', '.*:time
var redisClient = redis.createClient('redis://redis')
redisClient.config('set', 'notify-keyspace-events', 'KEA')
redisClient.psubscribe('__keyevent@0__:expired', '.*:timer')
redisClient.on('message', function (channel, key) {
console.log(`key ${key} channel ${channel}`)
})
这不起作用的原因是当redisClient对象离开其作用域时,对象被释放。我在.Net中也遇到了同样的问题,但后来我意识到我的对象是如何处理的,这就是为什么它不能调用事件的原因。如果您可以共享代码片段,我们将解决此问题 但现在,如果你尝试这个补丁,它会有所帮助
var redisClient = redis.createClient('redis://redis')
全局声明此对象,它将工作 这不起作用的原因是当redisClient对象离开其作用域时,对象被释放。我在.Net中也遇到了同样的问题,但后来我意识到我的对象是如何处理的,这就是为什么它不能调用事件的原因。如果您可以共享代码片段,我们将解决此问题 但现在,如果你尝试这个补丁,它会有所帮助
var redisClient = redis.createClient('redis://redis')
全局声明此对象,它将工作