【Redis】删除Redis的key带有特殊字符的缓存

起因

用户登录时如果是手机号登录,key会带国际区号和空格,

格式:user_detail::+86 15659810000

且当Redis识别到key包含特殊符号时,会在头尾都加上双引号,

导致实际存入Redis的key为 “user_detail::+86 15659810000”

当数据量大时,如果需要删除,一般都会使用Redis-Cli来进行批量删除

批量删除参考我的另一篇文章

就会使用到keys/scan命令,这时候返回的结果,结果其实是有包含双引号的

但是接收结果时会用到linux命令 xargs, 关键就是这个xargs命令,它在接收时会把特殊符号过滤掉

查阅资料说 -0 参数可以将特殊字符普通化,但是试了没效果

这时候我的使用的-I 参数,重新将双引号拼接起来然后再执行命令,这时候就能删除头尾带有双引号的缓存了

最后Redis-Cli命令为

redis-cli -h [host] -p [port] -a [password] -n [database] keys "user_detail::*" | xargs -I {} echo '"{}"' | xargs redis-cli -h [host] -p [port] -a [password] -n [database] del

 

如果帮到你,请点个赞吧 O(∩_∩)O~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值