Redis键空间通知-获取设置操作的值(较小)

时间:2018-09-02 08:47:11

标签: redis

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

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

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

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

1)每个设置操作完成后,客户端也会发布(PUB / SUB)

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

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

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

1 个答案:

答案 0 :(得分:2)

因此,最重要的是,请记住,PubSub最多只能发送一次。如果您确实需要处理客户端中的所有更改,则应该考虑一种更具弹性的方法。

也就是说,假设您对PubSub的承诺满意,那么1是最简单的,我会同意的。最多,我会为客户提供结合了SETPUBLISH命令的Lua包装器。当然,这基本上消除了您在基本上自己实现时就实际上侦听Keyspace通知的需要。

2表示可以对Redis进行黑客攻击,这虽然很棒,但是这意味着您必须维护自己的内存,这就是-;

3也很简单,但是有了1,您一次往返便摆脱了2。

另一种方法(4)是编写自定义模块,但是IMO太复杂了。和1和Lua一起走,也许力量与你同在。