我正在使用Redis创建数据库。
我的招聘之一是系统中的所有客户都能够收听设置事件并获取有关密钥和价值变化的信息。
我知道发布值可能很大(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一起去,也许力量在你身边。