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_Key - Fatal编程技术网

如何快速有效地删除Redis密钥

如何快速有效地删除Redis密钥,redis,key,Redis,Key,我有一个Redis 2.8.3服务,我将数据存储在集合中(使用SADD创建),例如: 处理完每个细节散列后,使用SREM将其删除,如果使用SCARD发现父集合(时间和应用程序)为空,则使用SREM将其删除 虽然这是可行的,但它似乎保留了每个删除项目的键。就这样 诸如“Customer:Custname:application:time”之类的键是否仍然存在 删除集合成员并同时删除相应键的最有效方法是什么?最好选择使用LUA过程的解决方案。伪代码看起来像 if 1 == srem(key, val

我有一个Redis 2.8.3服务,我将数据存储在集合中(使用SADD创建),例如:

处理完每个细节散列后,使用SREM将其删除,如果使用SCARD发现父集合(时间和应用程序)为空,则使用SREM将其删除

虽然这是可行的,但它似乎保留了每个删除项目的键。就这样 诸如“Customer:Custname:application:time”之类的键是否仍然存在


删除集合成员并同时删除相应键的最有效方法是什么?

最好选择使用
LUA
过程的解决方案。伪代码看起来像

if 1 == srem(key, value) then 
    if 0 == scard(key) then 
       del(key)
    end if 
end if   

感谢您的快速回复@misterion。我已经实现了这一点。
if 1 == srem(key, value) then 
    if 0 == scard(key) then 
       del(key)
    end if 
end if