Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Redis中查找复制集命令(或替代命令)_Redis - Fatal编程技术网

在Redis中查找复制集命令(或替代命令)

在Redis中查找复制集命令(或替代命令),redis,Redis,我是Redis的新手,我正在寻找一些关于设置的具体帮助。给一些背景信息:我正在构建一个web应用程序,它由大量卡片组组成,每个卡片组都有一组具有唯一ID的单独卡片。我希望用户有一套5张卡,从一个特定的牌组中随机抽取 我的计划是将给定卡片组的所有卡片ID作为一组存储在Redis中;然后我想使用SPOP函数来绘制单个卡片,并将它们从集合中移除,这样它们就不会在该手牌中再次绘制。这样做似乎是有意义的,将卡片组的卡ID“主集”复制到一个新的临时集,在副本上执行弹出操作,然后在完成后删除复制的集 但是:我

我是Redis的新手,我正在寻找一些关于设置的具体帮助。给一些背景信息:我正在构建一个web应用程序,它由大量卡片组组成,每个卡片组都有一组具有唯一ID的单独卡片。我希望用户有一套5张卡,从一个特定的牌组中随机抽取

我的计划是将给定卡片组的所有卡片ID作为一组存储在Redis中;然后我想使用SPOP函数来绘制单个卡片,并将它们从集合中移除,这样它们就不会在该手牌中再次绘制。这样做似乎是有意义的,将卡片组的卡ID“主集”复制到一个新的临时集,在副本上执行弹出操作,然后在完成后删除复制的集

但是:我找不到任何Redis函数来命令一个集合副本-我能看到的最接近的事情是也创建一个空集合,然后将空集合和集合的“主副本”与SUNIONSTORE“连接”到一个新的(如果是临时的)集合中,但这似乎有点骇人听闻。我想另一种方法是将设置的项目复制到我的“主机语言”(node.js)中,然后手动将项目插入到新的Redis集中,但这似乎也很笨拙。也许还有更好的第三种选择,我甚至没有想到

我做错了什么吗?我不是“得到”了Redis,还是命令集还不成熟

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"
享受Redis带来的乐趣! 萨尔瓦多