如何删除带有特殊字符的Redis键?
How to delete Redis keys with special characters?
我无法从我们的 Redis 实例中删除 ENV:NAMESPACE:?''?""-last
格式的键。它似乎是被恶意添加的。
尽管 redis-cli --scan
返回了它,但我找不到使用 redis-cli
删除它的任何方法。在shell中转义或使用交互模式的每一个组合都无法找到密钥。
只是几次尝试包括:
$ redis-cli --scan --pattern 'ENV:NAMESPACE:*-last' | xargs redis-cli del
xargs: unterminated quote
$ redis-cli del ENV:NAMESPACE:?''?""-last
(integer) 0
$ redis-cli del "ENV:NAMESPACE:?''?\"\"-last"
(integer) 0
$ redis-cli del 'ENV:NAMESPACE:?'"'"''"'"'?""-last'
$redis-cli
> del ENV:NAMESPACE:?''?""-last
Invalid argument(s)
> del "ENV:NAMESPACE:?''?\"\"-last"
(integer) 0
> del 'ENV:NAMESPACE:?\'\'?""-last'
(integer) 0
有人知道使这项工作有效的方法或删除密钥的合理替代方法吗?
我最终根据 ceejayoz 的建议尝试了 python 客户端。
原来真正的密钥是 b'ENV:NAMESPACE:\xf0\'\'\xf0""-last'
,我可以直接从那里删除它。
我无法从我们的 Redis 实例中删除 ENV:NAMESPACE:?''?""-last
格式的键。它似乎是被恶意添加的。
尽管 redis-cli --scan
返回了它,但我找不到使用 redis-cli
删除它的任何方法。在shell中转义或使用交互模式的每一个组合都无法找到密钥。
只是几次尝试包括:
$ redis-cli --scan --pattern 'ENV:NAMESPACE:*-last' | xargs redis-cli del
xargs: unterminated quote
$ redis-cli del ENV:NAMESPACE:?''?""-last
(integer) 0
$ redis-cli del "ENV:NAMESPACE:?''?\"\"-last"
(integer) 0
$ redis-cli del 'ENV:NAMESPACE:?'"'"''"'"'?""-last'
$redis-cli
> del ENV:NAMESPACE:?''?""-last
Invalid argument(s)
> del "ENV:NAMESPACE:?''?\"\"-last"
(integer) 0
> del 'ENV:NAMESPACE:?\'\'?""-last'
(integer) 0
有人知道使这项工作有效的方法或删除密钥的合理替代方法吗?
我最终根据 ceejayoz 的建议尝试了 python 客户端。
原来真正的密钥是 b'ENV:NAMESPACE:\xf0\'\'\xf0""-last'
,我可以直接从那里删除它。