我正在使用Redis创建DB。
我的招聘之一是系统中的所有客户都能够侦听设置事件并获取有关键和值更改的信息。
我知道发布值可能很大(512 MB(,但我知道在我的系统中,值的大小不会超过 100 个字符。
我有 3 种可能的解决方案,我想知道哪一种会更好或考虑其他解决方案:
1(在每个设置操作之后,客户端也将发布它(PUB/SUB(
2(编辑 setGenericCommand 函数以发布值并使用键空间绑定。
3(客户端收到密钥空间通知后,它将通过 get 操作获取值。
我想了解哪种方法会更好? 谢谢!
因此,首先,请记住,PubSub 最多是一次交付。如果确实需要处理客户端中的每个更改,则应考虑一种更具弹性的方式来执行此操作。
也就是说,假设你对 PubSub 的承诺没问题,1 是最简单的,我会同意的。最多,我会为客户提供一个结合了SET
和PUBLISH
命令的Lua包装器。当然,这消除了实际监听Keyspace通知的需要,因为您基本上是自己实现的。
2 意味着入侵 Redis,这很好,但意味着你必须维护自己的 meh--;
3 也很简单,但有了 1,您只需往返一次而不是 2 次即可逃脱。
另一种 (4( 方法是编写自定义模块,但 IMO 对于此需求来说太复杂了。与1和Lua一起去,愿力量与你同在。