首页 > 解决方案 > Redis 键空间通知 - 获取集合操作的值(小尺寸)

问题描述

我正在使用 Redis 创建数据库。

我的一项招聘是,系统中的所有客户都将能够收听设置事件并获取有关键和值更改的信息。

我知道发布价值可能很大(512 MB),但我知道在我的系统中价值的大小不会超过 100 个字符。

我有 3 种可能的解决方案,我想知道哪一种会更好或考虑其他解决方案:

1)每次set操作后客户端也会发布(PUB/SUB)

2)编辑 setGenericCommand 函数以发布值并使用键空间绑定。

3)客户端收到键空间通知后,将通过get操作获取值。

我想了解哪种方法会更好?谢谢!

标签: redis

解决方案


因此,首先,请记住,PubSub 最多只能交付一次。如果你真的需要处理客户端的每一个变化,你应该考虑一种更有弹性的方法来做到这一点。

也就是说,假设你对 PubSub 的承诺没问题,1 是最简单的,我会同意的。最多,我会为客户提供一个结合了SETandPUBLISH命令的 Lua 包装器。当然,这消除了实际收听 Keyspace 通知的需要,因为您基本上是自己实现它。

2 意味着破解 Redis,这很好,但意味着你必须维护自己的,这就是 meh--;

3 也很简单,但是使用 1,您只需往返一次而不是 2。

另一种 (4) 方法是编写自定义模块,但 IMO 过于复杂,无法满足此需求。选择 1 和 Lua,愿原力与你同在。


推荐阅读