文章目录

      • 1. 登录可以连接Redis的机器,安装Redis
      • 2. 执行以下命令,删除模糊匹配到的Key
      • 3. 案例
      • 4. 相关文章

1. 登录可以连接Redis的机器,安装Redis

详情请参见redis-cli连接。

2. 执行以下命令,删除模糊匹配到的Key

./redis-cli -h [$Addr] -a [$Password] keys "[$Key]*" | xargs ./redis-cli -h [$Addr] -a [$Password] del

说明:

  • [$Addr]为Redis连接地址。
  • [$Password]为Redis登录密码。
  • [$Key]为想要删除Key的前缀。
  • 您还可以根据实际情况添加参数,例如-n指定库。

3. 案例

  • redis中没有直接根据正则表达式删除key的命令,只有del key1命令
  • 但是redis中有通过正则表达式获取key的命令:keys “正则表达式”
  • 可以借助于xargs命令实现批量删除key,把查出来的key值当做参数传给del
  • redis-cli keys “xxxx*” | xargs del
redis-cli -h 192.169.1.71 -p 7001 -a 123456 keys xxxx* | xargs -r -t -n1 redis-cli -h 192.169.1.71 -p 7001 -a 123456 del
  • xargs命令后需加上参数-r,不然当keys的数量为0时,就会报错 (error) ERR wrong number of arguments for ‘del’ command
  • xargs命令后需加上参数-n1,不然当集群情况keys的数量大于1时,可能会报错 (error) CROSSSLOT Keys in request don’t hash to the same slot
  • 不加-t也可以,加上-t会输出每次删除的内容,不加则不输出删除的内容,但还是会输出每次删除的key的数量

单机redis免密情况下,模糊匹配删除key

redis-cli keys "*_long" | xargs redis-cli del

Redis 模糊搜索

  • keys *   匹配数据库中所有 key
  • keys h?llo   ?为单个占位符
  • keys h*llo   *为多字符占位符
  • keys h[ae]llo   匹配 hallo 和 hello ,但不匹配 hillo;特殊符号用 \ 隔开。

4. 相关文章

  • Linux安装部署Redis
  • redis集群搭建
  • 华为云两台机器内网互联
  • Redis模糊匹配并删除Key