在Redis中查找副本集命令(或替代)

Ale*_*ean 20 redis

我是Redis的新手,我正在寻找一些特定的帮助.为了给出一些背景知识:我正在构建一个网络应用程序,其中包含大量的卡片组,每个卡片组都有一组带有唯一ID的单独卡片.我希望用户从特定的套牌中随机抽取一组5张牌.

我的计划是将给定套牌的所有卡ID存储在Redis中作为一组; 然后我想使用SPOP功能绘制单个卡并将其从集合中移除,以便它们不会在该手中再次绘制.通过将卡牌的"主集"卡片复制到一个新的临时集中,在副本上执行弹出然后在我完成时删除复制的集合,这似乎是有意义的.

但是:我找不到任何Redis函数来命令设置副本 - 我能看到的最接近的事情是创建一个空集然后'加入'空集和集合的'主副本'成新的(如果是临时的)用SUNIONSTORE设置,但这看起来很糟糕.我想另一种方法是将设置项复制到我的"宿主语言"(node.js)中,然后手动将项目插回到新的Redis集中,但这看起来也很笨重.可能有一个更好的第三种选择,我甚至都没有想过.

我做错了什么 - 我不是'得到'Redis,还是命令集仍然有点不成熟?

ant*_*rez 64

redis> sadd mydeck 1
(integer) 1
redis> sadd mydeck 2
(integer) 1
redis> sadd mydeck 3
(integer) 1
redis> smembers mydeck
1) "1"
2) "2"
3) "3"
redis> sunionstore tempdeck mydeck
(integer) 3
redis> smembers mydeck
1) "1"
2) "2"
3) "3"
redis> smembers tempdeck
1) "1"
2) "2"
3) "3"
Run Code Online (Sandbox Code Playgroud)

与Redis玩得开心!萨尔瓦多