清空/删除Redis中的集合?


70

也许我只是盲目的,但我没有在Redis中看到用于清空现有集合(而不清空整个数据库)的显式set命令。目前,我正在对场景本身进行设置差异并将其存储回自己:

redis> SMEMBERS metasyn
1) "foo"
2) "bar"
redis> SDIFFSTORE metasyn metasyn metasyn
(integer) 0
redis> SMEMBERS metasyn
(empty list or set)

但这看起来有点愚蠢……有更好的方法吗?


我喜欢您的创造力
Mo Ganji

Answers:


109

您可以使用将全部删除DEL

DEL metasyn

在redis控制台中,

redis> SMEMBERS metasyn
1) "foo"
2) "bar"
redis> DEL metasyn
(integer) 1
redis> SMEMBERS metasyn
(empty list or set)

3
哇,我应该先尝试一下,哈哈。由于某种原因,我认为该命令不适用于集合。谢谢!
安倍·沃克

7
是的,我花了一段时间才弄清楚那个..中的命令Keys全局适用于所有键,而与数据类型无关。
阿努拉格

9
我懂了; 我认为这是有道理的。嗯,我将把这个令人尴尬的问题留给像我这样不关心本教程的下一个傻瓜。:-)
安倍·沃克

我真是个傻瓜,因为您为什么要在记忆中保留一个空的位置...
Jonathan Leung

3
因为空集意味着与不存在的集有所不同。考虑:newuser111:questions(新用户111的问题集)与nonexistentuser:questions(应该是不存在的用户的问题集,不存在的用户)。有一个空集来区分两者是很有用的。
克里斯·普弗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.