Chinaunix首页 | 论坛 | 博客
  • 博客访问: 707768
  • 博文数量: 143
  • 博客积分: 1554
  • 博客等级: 上尉
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-10 11:50
文章分类

全部博文(143)

文章存档

2017年(2)

2016年(5)

2015年(16)

2014年(25)

2013年(27)

2012年(16)

2011年(52)

分类: NOSQL

2014-06-05 10:18:31

批量删除Key
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作

redis-cli keys "*" | xargs redis-cli del
//如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径
3  //如:/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del

如果要指定 Redis 数据库访问密码,使用下面的命令
1  redis-cli -a password keys "*" | xargs redis-cli -a password del

如果要访问 Redis 中特定的数据库,使用下面的命令
1  //下面的命令指定数据序号为0,即默认数据库
2  redis-cli -n 0 keys "*" | xargs redis-cli -n 0 del

删除所有Key
删除所有Key,可以使用Redis的flushdb和flushall命令

//删除当前数据库中的所有Key
2  flushdb
//删除所有数据库中的key
4  flushall
注:keys 指令可以进行模糊匹配,但如果 Key 含空格,就匹配不到了,暂时还没发现好的解决办法。

2 使用shell 
redis-cli keys  "*" | while read LINE ; do TTL=`redis-cli ttl $LINE`; if [ $TTL -eq -1 ]; then echo "Del $LINE"; RES=`redis-cli del $LINE`; fi; done;

删除 3600秒之后过期的
redis-cli keys  "*" | while read LINE ; do TTL=`redis-cli ttl $LINE`; if [ $TTL -ge  3600 ]; then echo "Del $LINE"; RES=`redis-cli del $LINE`; fi; done;
删除某些前缀的
redis-cli KEYS "126.com*" | xargs redis-cli DEL

阅读(2785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~