在MacOs 10.15环境中,当我列出一些密钥时,我有一个奇怪的Redis行为:
redis-cli -n 1 --scan --pattern "product_doctrine*"
例如:
product_doctrine[AppBundle\Entity\ColumnMapping\$GEDMO_TIMESTAMPABLE_CLASSMETADATA][21546]
但是它不会使用xargs删除它:
redis-cli -n 1 --scan --pattern "product_doctrine*" | xargs -L 1 redis-cli -n 1 del
(integer) 0
键名是否具有特殊字符?因为如果运行此inide,则redis-cli:
SCAN 0 MATCH product_doctrine*
它显示带有转义反斜杠的键:
"product_doctrine[AppBundle\\Entity\\ShopSettings\\$GEDMO_SOFTDELETEABLE_CLASSMETADATA][11677]"
在redis-cli
内部,我可以成功地删除这些键
127.0.0.1:6379[1]> del "product_doctrine[AppBundle\\Entity\\ShopSettings\\$GEDMO_SOFTDELETEABLE_CLASSMETADATA][11677]"
(integer) 1
答案 0 :(得分:0)
在macOS 10.14上执行以下操作:
redis-cli --scan --pattern "foo*" | sed 's/\\/\\\\/' | xargs -L 1 redis-cli DEL
¯\ _(ツ)_ /¯