我希望能够在我的redis集合中发生任何更改时运行回调。回调将把键和值作为输入。这样的事情有可能发生吗?
谢谢?
发布于 2012-05-21 10:48:38
您还可以使用sync命令像追随者一样连接到Redis服务器。有关快速介绍,请参阅如何使用Redis Replication Works?。
sync命令的输出有两个阶段。在第一阶段,服务器返回数据库dump.rdb文件。一旦文件被发送,它就开始以Redis协议发送命令,该协议也是AOF格式。
以下是您可以执行的操作的高级图片:
SYNC命令这似乎有很多工作要做,但你应该能够很容易地破解它。而且它也会成为一个很好的开源库!
监视器编辑:同步v/s监视器
Monitor是一个调试命令。响应格式可以(并且已经)随时间改变(D)。Sync用于主->从复制,因此supportedMonitor将发出所有命令,包括只读命令。data.Monitor只会得到修改Sync的命令,并记录在lua脚本中执行的各个命令。Sync只会传输整个lua脚本,所以你必须自己解析脚本。这确实破坏了sync.Monitor将记录未成功的命令,Sync将只记录修改数据的命令。例如,命令del non-existing-key将由监视器记录,但在您运行sync时不会显示。发布于 2012-05-21 04:57:23
更新:无论谁在读这篇文章-这些都是古老的答案,忽略了它们所有的。你需要的是Redis Keyspace通知,它已经存在很久了。请参阅https://redis.io/topics/notifications
发布于 2012-05-21 04:56:10
有两个选项:
MONITOR命令-它跟踪每个到达Redis的命令,你可以分析和查看何时你的集合被触摸。EDIT Redis实际上将在2.8版本中实现此功能。请参阅Antirez的博客文章:Redis keyspace changes notification system。
https://stackoverflow.com/questions/10676951
复制相似问题