我是Redis的新手,我正在寻找一些有关集合的特定帮助。为了提供一些背景知识:我正在构建一个网络应用程序,其中包含大量的卡片卡片,每个卡片都有一组带有独特ID的个人卡片。我希望用户从特定的牌组中随机抽取一组5张牌。在Redis中寻找复制集命令(或替代)
我的计划是将给定卡组的所有卡ID存储在Redis中;那么我想使用SPOP功能来绘制单张牌并将它们从套牌中移除,这样它们就不会被再次抽出。通过将卡组ID的“主集”复制到一个新的临时集中,执行复制中的弹出操作,然后在完成时删除复制的集合,似乎很有意义。
但是:我找不到任何Redis函数来命令set拷贝 - 我能看到的最接近的情况是也会创建一个空set,然后'join'空集和'master copy'与SUNIONSTORE一起设置为一个新的(如果是临时的)集合,但这看起来很乱。我想另一种方法是将设置的项目复制到我的'主机语言'(node.js)中,然后手动将项目插回到新的Redis集合中,但这看起来也很笨重。我可能还没有想到更好的第三种选择。
我做错了什么?我是不是'变'Redis,还是命令集还有点不成熟?
谢谢@antirez,这工作很好。 – 2011-01-17 08:45:36
是的,sunionstore真的很不错。 – hahakubile 2013-11-29 06:15:09