返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 880|回复: 0

[原创] 【原创】redis使用keys *查询出来的键名含有编码转义错误怎么解决

[复制链接]
发表于 2025-5-14 17:14:13 | 显示全部楼层 |阅读模式

少侠不来段修仙之旅吗~

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
本帖最后由 da11 于 2025-5-15 17:44 编辑

redis使用keys *查询出来的键名含有编码转义错误怎么解决


场景:
redis使用keys *查询出来的键名如下:
id:type:332211:\xe8\x81

最后含有编码转义字符,如果直接exists id:type:332211:\xe8\x81是无法找到的
现在开发人员就需要把这个单独的键删掉,而不删除整个数据库。这时需要以正确的编码显示才能把它删除。

使用redis-cli的--raw选项查看原始字节:(linux命令行下)
redis-cli --raw keys "id:type:332211*"


使用SCAN命令遍历键:
代替KEYS,使用SCAN避免阻塞并准确获取键名:(linux命令行下)
redis-cli --scan --pattern "id:type:332211*"


验证键是否存在:
将键名以十六进制形式传递给EXISTS:(linux命令行下)
echo -e "EXISTS id:type:332211:\xe8\x81" | redis-cli --raw


# 确保echo -e正确转义(在Bash中处理\x)。

删除键的正确方法:
使用redis-cli直接传递原始字节:(linux命令行下)
redis-cli del "id:type:332211:$(echo -e "\xe8\x81")"



如果redis存在密码,不想在明文环境下输入密码,可以直接输入redis-cli --raw命令进入redis即可!
游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表