我想维护两个集合。
- The live or active servers. Say collection contains SERVER1,SERVER2.
- The clients c1,c2,c3 connected to specific server say SERVER1 and clients c4,c5,c6 are connected to SERVER2 The other collections will have,
**KEY : VALUE**
c1:SERVER1
c3:SERVER1
c4:SERVER2
c6:SERVER2
c2:SERVER1
c5:SERVER2
我将从集合中删除的非事件服务器。
每当我从 redis 中删除服务器(比如 SERVER1)时,我想删除其值与其匹配的实例。这里我想完全删除 c1,c2,c3。然后收集将是这样的:
**KEY : VALUE**
c4:SERVER2
c6:SERVER2
c5:SERVER2
要维护集合,我可以使用什么类型的 redis 命令。喜欢集合/列表。? 我怎样才能达到这个结果。?
最佳答案
对于主列表,您可以将它们存储为 SET key val
命令,或者您可以使用 HSET
将它们存储在专用哈希表中(或 HMSET
)。后者将为您提供有效地使用此表的选项(特别是如果您的数据库中存储了大量键)。
你还想保留一个 SET
连接到每个服务器的客户端。
删除服务器时,从主哈希表中删除所有服务器集成员,并在完成后删除该集。
以你的例子为例:
HMSET connectedClients c1 SERVER1 c2 SERVER1 c3 SERVER1 c4 SERVER2 c5 SERVER2 c6 SERVER2
SADD SERVER1Clients c1 c2 c3
SADD SERVER2Clients c4 c5 c6
删除服务器时,您可以让所有连接的客户端
SMEMBERS SERVERxClients
,并从散列中删除输出列表
HDEL connectedClients <Output of SMEMBERS>
关于node.js - 如何从redis中的值中获取键并通过检查其值删除其他键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826478/