【发布时间】:2020-02-13 08:15:24
【问题描述】:
在我的 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
可能是键名有特殊字符吗?因为如果我在 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
【问题讨论】:
-
您使用的是哪个操作系统?具体来说,哪个
xargs?请注意,根据其手册页,xargs对反斜杠的处理方式不同。这与 shell 和 redis-cli 的怪癖相结合会带来您的体验。 -
我在 MacOs 10.15 环境下运行它