我在redis名称中使用哈希集= =“match / 123 / result”
我正在使用“HSET”添加条目并使用“HGETALL”一次检索所有条目
现在,我想刷新这个哈希集,但没有像“HDELALL”这样的命令
所以我使用“DEL”来删除哈希集名称本身,在这种情况下我像这样触发命令 -
DEL match/123/result
只能找到这种方法一次删除所有内容。 还有其他解决方案吗?
答案 0 :(得分:70)
如果您想要删除或清除“myhash”'散列。
请使用以下命令:
redis-cli
redis> del myhash
希望它能解决问题。
答案 1 :(得分:3)
这是一种基于ruby的方法,通过单个流水线请求删除哈希中的所有键:
def hdelall(key)
r = Redis.new
keys = r.hgetall(key).keys
r.pipelined do
keys.each do |k|
r.hdel key, k
end
end
end
答案 2 :(得分:3)
如果您有密钥列表,那么您可以使用hdel with multiple keys 但我肯定会建议不要使用它,因为它的复杂性为O(N)。
默认情况下,redis不允许在hashet中使用clear函数,所以你必须使用del
答案 3 :(得分:0)
这应该在Python中起作用(来自“Redis in Action”一书)
all_keys = list(conn.hgetall('some_hash_name').keys())
conn.hdel('some_hash_name', *all_keys)
答案 4 :(得分:0)
您可以使用 hdel *删除此键上的所有哈希值
答案 5 :(得分:0)
我们可以执行一次迭代: 就我而言,我存储了一个散列,其中键是我的“字段”,并以值存储了一个对象。因此您可以进行相应的更改。
Object.keys(cartData).forEach((field)=>{
redisClient.hdel("YOUR KEY",field);
});