Redis"nil"或"空列表或集"

Kak*_*ait 7 redis

我目前正在使用redis使用"set"结构.

我想知道是否可以自动清空"套装"?

否则找到一个cron/process定期清理空"set"


更新:

更通用的问题,"(nil)"和"(空列表或集合)"之间存在差异(内存使用)

例:

sadd x 1
srem x
smembers x
(empty list or set)
Run Code Online (Sandbox Code Playgroud)

要么

sadd x 1
del x
smembers x
(nil)
Run Code Online (Sandbox Code Playgroud)

Did*_*zia 7

这已经是自动的了.当一个集为空时,它将从命名空间中删除.

> flushall
OK
> sadd x 1 2 3
(integer) 3
> keys *
1) "x"
> srem x 1 2 3
(integer) 3
> keys *
(empty list or set)
Run Code Online (Sandbox Code Playgroud)

您无需执行任何特定操作即可从此行为中受益.

要回答第二个问题,(零)或(空列表或集合)只是对客户端程序的解释.在Redis服务器中,在两种情况下,都已物理删除条目,并释放相关的内存.