我在Redis中有一个名为“match/123/result”的哈希值。我使用HSET将条目添加到该散列中,并使用HGETALL一次检索所有条目。我想刷新此哈希,但没有类似“HDELALL”(在redis-cli中)的命令。因此,我使用DEL来删除散列名称,如下所示:DEL match/123/result我只能找到这种方法来一次性删除所有内容(哈希值及其内容),还有其他解决方案吗?
HSET
HGETALL
redis-cli
DEL
DEL match/123/result
0mkxixxg1#
如果要删除或刷新“myhash”哈希。请使用下面的命令:
redis-cli redis> del myhash
希望它能解决问题。
i86rm4rw2#
下面是一个基于Ruby的方法,通过一个流水线请求删除Hash中的所有键:
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
wljmcqd83#
如果你有一个键的列表,那么你可能可以使用hdel with multiple keys,但是我肯定会建议不要使用它因为它的复杂度是O(N)。默认情况下,redis不允许在hashet中使用clear函数,所以你必须使用del
pkmbmrz74#
这应该可以在Python中使用(来自“Redis in Action”一书)
all_keys = list(conn.hgetall('some_hash_name').keys()) conn.hdel('some_hash_name', *all_keys)
rks48beu5#
我们可以通过一次迭代来实现:在我的例子中,我存储了一个哈希值,其中key是我的“字段”,而在value处,我存储了一个对象。
Object.keys(cartData).forEach((field)=>{ redisClient.hdel("YOUR KEY",field); });
5条答案
按热度按时间0mkxixxg1#
如果要删除或刷新“myhash”哈希。
请使用下面的命令:
希望它能解决问题。
i86rm4rw2#
下面是一个基于Ruby的方法,通过一个流水线请求删除Hash中的所有键:
wljmcqd83#
如果你有一个键的列表,那么你可能可以使用hdel with multiple keys,但是我肯定会建议不要使用它因为它的复杂度是O(N)。
默认情况下,redis不允许在hashet中使用clear函数,所以你必须使用del
pkmbmrz74#
这应该可以在Python中使用(来自“Redis in Action”一书)
rks48beu5#
我们可以通过一次迭代来实现:在我的例子中,我存储了一个哈希值,其中key是我的“字段”,而在value处,我存储了一个对象。