如何从Redis 5+中删除具有特定前缀的密钥?
我已经尝试关注,但对我没有用(
root@1acb94e11aa2:/data# redis-cli --version
redis-cli 5.0.4
root@1acb94e11aa2:/data# redis-cli -n 9 KEYS ISO:* | wc -l
935
root@1acb94e11aa2:/data# redis-cli -n 9 KEYS ISO:* | xargs -0 redis-cli -n 9 DEL
(integer) 0
root@1acb94e11aa2:/data# redis-cli -n 9 KEYS ISO:* | wc -l
935
root@1acb94e11aa2:/data# redis-cli -n 9 --scan --pattern ISO:* | xargs -0 redis-cli -n 9 unlink
(integer) 0
root@1acb94e11aa2:/data#
请告知。
答案 0 :(得分:0)
只要您的键名不包含空格,您就应该可以运行以下命令:
$ redis-cli -n 9 --scan --pattern "ISO:*" | xargs -n 1 redis-cli -n 9 UNLINK
编辑:如果它们确实包含空格,则可以执行以下操作:
$ redis-cli -n 9 --scan --pattern "ISO:*" | xargs -n 1 -d "\n" redis-cli -n 9 UNLINK
答案 1 :(得分:0)
FIX:
root@1acb94e11aa2:/data# redis-cli -n 9 KEYS ISO:* | xargs -d "\n" redis-cli -n 9 del
(integer) 262
root@1acb94e11aa2:/data#
root@1acb94e11aa2:/data# redis-cli -n 9 KEYS ISO:*
(empty list or set)
root@1acb94e11aa2:/data#