node.js - 使用正则表达式的事件 Redis 键空间通知
问题描述
我想在与提供的模式匹配的 redis 键上生成过期事件。我在节点 js 中使用 redis。
我曾尝试使用模式使用 redis psubscribe,但它并没有解决我的问题。
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')
全局声明此对象,它将起作用。
推荐阅读
- android - 索引 43 处路径中的非法字符:/storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20200122-WA0002.mp4
- python - 循环遍历 pandas 列并在满足条件时创建新列
- python - 仅使用单个线程而不是多个线程进行多处理
- python - 从多个 django 模型填充 json
- python - urllib3 重试不适用于请求
- ruby-on-rails - 使用 Net :: HTTP 发出请求返回状态 200 但无法正常工作
- javascript - 动画画布背景闪烁?
- ios - SwiftUI Form 和 StackNavigationViewStyle 狂奔
- javascript - Amcharts4: 'legendSettings' 'itemValueText' 检查空值或未定义值
- angular - *ngIf 不会打开模板