一尘不染

Redis“无”或“空列表或集合”

redis

我目前正在使用“设置”结构使用Redis。

我想知道是否有可能自动清理空的“ set”吗?

否则找到一个cron /进程来定期清理空的“ set”


更新:

更笼统的问题是,“(nil)”和“(空列表或集合)”之间存在差异(内存使用情况)

例:

sadd x 1
srem x
smembers x
(empty list or set)

要么

sadd x 1
del x
smembers x
(nil)

阅读 1093

收藏
2020-06-20

共1个答案

一尘不染

这已经是自动的。如果集合为空,则将其从名称空间中删除。

> flushall
OK
> sadd x 1 2 3
(integer) 3
> keys *
1) "x"
> srem x 1 2 3
(integer) 3
> keys *
(empty list or set)

您不必执行任何特定操作即可从此行为中受益。

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

2020-06-20