对于redis的批量删除指定key,有没有好的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于redis的批量删除指定key,有没有好的方法相关的知识,希望对你有一定的参考价值。
redis可以用flushdb/flushall删除所有的key。用del只能根据key去删除。另外一种方式,你可以通过设置过期时间让key到期自动删除。 参考技术A 1. 终端获取所有Key命令:redis-cli keys ‘*’ ;
获取指定前缀的key:redis-cli KEYS “edu:*”
如果需要导出,可以redis-cli keys ‘*’ > /data/redis_key.txt
删除指定前缀的Key redis-cli KEYS “edu:*” | xargs redis-cli DEL
批量删除redis数据库中的key
在redis数据库中,如果大量以某些字段开头或结尾的key,一般都会用到命令keys进行模糊匹配。但是当我们想删除批量指定的keys,却犯愁了,因为redis没有提供相关的命令。那我们怎么操作能实现预期的效果呢?
(1) 删除单个key
127.0.0.1:6379> del key
如果知道有限多个key的名字,以下操作也可以实现批量操作
127.0.0.1:6379> del key1 key2 key3 ....
当key的数量达到一定数量时,这个方法明显时不现实的。
注意:redis命令行默认使用空格来分割key值,如果刚好某个key的明早带有空格,则对于有空格的key需要用引号包含起来:
127.0.0.1:6379>del ”first key" "second key"
(2) 批量删除key
批量删除key,我们可以借助Linux 的 xargs 指令来完成这个动作
127.0.0.1:6379>redis-cli keys "a*" | xargs redis-cli del 说明:如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径 比如:/usr/local/redis/redis-cli keys "a*" | xargs /usr/local/redis/redis-cli del
如果要指定 Redis 数据库访问密码,使用下面的命令
127.0.0.1:6379>redis-cli -a password keys "a*" | xargs redis-cli -a password del
如果要访问 Redis 中特定的数据库,使用下面的命令
//下面的命令指定数据序号为0,即默认数据库 127.0.0.1:6379>redis-cli -n 0 keys "a*" | xargs redis-cli -n 0 del
(3) 删除所有Key
删除所有Key,可以使用Redis的flushdb和flushall命令
//删除当前数据库中的所有Key flushdb //删除所有数据库中的key flushall