node.js - Redis客户端监听SET和DEL事件

标签 node.js redis

我可以轻松地使用 Redis Pub/Sub 功能在 Redis 客户端之间发送消息,但我无法找到用于监听基本 Redis 事件(如 SET 或 DEL)的语法。我想创建一个客户端来监听基本的 Redis 事件,比如键/值对的更新,但是我能找到的 Pub/Sub 库都没有提供如何监听基本事件的例子,比如删除或设置。

例如,我正在寻找类似以下内容的内容:

var redis = require('redis');
var client = redis.createClient();

client.on('SET', function(result){
//this will be invoked when any key or a specific key is set
}

client.on('DEL', function(result){
//this will be invoked when any key or a specific key is deleted
}

这个高级代码是否存在?

http://redis.io/topics/notifications

最佳答案

是的,这是可能的!这是一个基于您的代码的示例:

var redis = require('redis');
var client = redis.createClient();

var EVENT_SET = '__keyevent@0__:set';
var EVENT_DEL = '__keyevent@0__:del';

client.on('message', function(channel, key) {
  switch (channel) {
  case EVENT_SET:
    console.log('Key "' + key + '" set!');
    break;
  case EVENT_DEL:
    console.log('Key "' + key + '" deleted!');
    break;
  }
});

client.subscribe(EVENT_SET, EVENT_DEL);

在尝试运行上述代码之前,请记住在您的服务器配置中正确设置notify-keyspace-events,例如:

notify-keyspace-events "Eg$"

关于node.js - Redis客户端监听SET和DEL事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785346/

相关文章:

java - Redis key 过期通知

node.js - 使用 AWS Lambda 和 API Gateway 提供静态 JavaScript?

python - 在 Redis 中获取多个哈希的最有效方法是什么?

node.js - 有时拉丁字母 (ä ö ü è ß) 字符会返回为 �

node.js - Sequelize v6 - TypeError : sequelize. import is not a function

从仅附加文件恢复 Redis 数据?

windows - Redis 集群就绪客户端

Redis 快照重载内存

node.js - 找不到带有 Nightmare 和nodejs的模块 'browser-window'

node.js - 如何将javascript中的字符串数组插入PostgreSQL