使用模式删除 Redis 键
DELTE Redis key with Pattern
我正在使用 Redis 哈希集以下列格式存储数据:
hset b1.b2.b3 name test
现在我想删除这个密钥,所以我使用以下格式:
del b1.b2.*
但它不起作用,所以我如何使用模式删除 Redis 密钥?
Redis 不提供任何删除批量键的方法。但是 redis-cli 和 xargs 可以用来实现你想要做的事情。请参阅以下命令:
127.0.0.1:6379> hset b1.b2.b3 name test
(integer) 1
127.0.0.1:6379> hgetall b1.b2.b3
1) "name"
2) "test"
$ redis-cli --scan --pattern b1.b2.* | xargs redis-cli del
(integer) 1
$ redis-cli
127.0.0.1:6379> hgetall b1.b2.b3
(empty list or set)
我们正在使用“--scan”扫描 redis 以查找模式,并使用 xargs 方法将输出再次提供给 redis-cli whcih 结合扫描结果中的所有键,最后我们使用 'del'命令。
您可以使用上面@Ankit 回答的模式来完成。
你可以做一个SCAN
然后删除键直到什么都不剩(光标为0)
我正在使用 Redis 哈希集以下列格式存储数据:
hset b1.b2.b3 name test
现在我想删除这个密钥,所以我使用以下格式:
del b1.b2.*
但它不起作用,所以我如何使用模式删除 Redis 密钥?
Redis 不提供任何删除批量键的方法。但是 redis-cli 和 xargs 可以用来实现你想要做的事情。请参阅以下命令:
127.0.0.1:6379> hset b1.b2.b3 name test
(integer) 1
127.0.0.1:6379> hgetall b1.b2.b3
1) "name"
2) "test"
$ redis-cli --scan --pattern b1.b2.* | xargs redis-cli del
(integer) 1
$ redis-cli
127.0.0.1:6379> hgetall b1.b2.b3
(empty list or set)
我们正在使用“--scan”扫描 redis 以查找模式,并使用 xargs 方法将输出再次提供给 redis-cli whcih 结合扫描结果中的所有键,最后我们使用 'del'命令。
您可以使用上面@Ankit 回答的模式来完成。
你可以做一个SCAN
然后删除键直到什么都不剩(光标为0)