文章目录
- 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