我目前正在使用"set"数据结构处理redis。
我想知道是否可以自动清理空的"set"?
否则,请找到一个定期清理空的"set"的cron/进程。
更新:
更通用的问题,"(nil)"和"(empty list or set)"之间存在差异(内存使用)。
例子:
sadd x 1
srem x
smembers x
(empty list or set)
或者
sadd x 1
del x
smembers x
(nil)
我目前正在使用"set"数据结构处理redis。
我想知道是否可以自动清理空的"set"?
否则,请找到一个定期清理空的"set"的cron/进程。
更新:
更通用的问题,"(nil)"和"(empty list or set)"之间存在差异(内存使用)。
例子:
sadd x 1
srem x
smembers x
(empty list or set)
或者
sadd x 1
del x
smembers x
(nil)
这已经是自动的了。当一个集合为空时,它将从命名空间中删除。
> 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 服务器中,两种情况下条目已被物理删除,并释放了相关的内存。