批量删除redis 缓存redis-cli -h 192.168.1.84 -p 6379 -a testpasswd keys "app*" | xargs redis-cli -h 192.168.1.84 -p 6379 -a testpasswd delredis如何清除所有的key 2013-12-12 14:52:18分类: NOSQLredis比memcache好的地方之一,如果memcache,恐怕就得关掉重启了。1 使用cliFLUSHDB 清除一个数据库,FLUSHALL清除整个redis数据。2 使用shellredis-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 DELredis-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;redis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | xargs redis-cli -h 192.168.1.83 -p 6380 -a testpasswd delredis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -eq -1 ]; then echo "LLEN $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd LLEN $LINE`; fi; done;redis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -eq -1 ]; then echo "Del $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd Del $LINE`; fi; done;app_smallapp_v2_5_*//selectredis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -eq -1 ]; then echo "expire $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd EXPIRE $LINE 60`; fi; done;//delredis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -eq -1 ]; then echo "Del $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd Del $LINE`; fi; done;//ttlredis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -eq -1 ]; then echo "ttl $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE `; fi; done;redis-cli -h 192.168.1.83 -p 6380 -a testpasswd keys "app_*" | while read LINE ; do TTL=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE`; if [ $TTL -ne -1 ]; then echo "ttl $LINE"; RES=`redis-cli -h 192.168.1.83 -p 6380 -a testpasswd ttl $LINE `; fi; done;3 使用lua脚本删除所有keyEVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 *删除某些keyEVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 126.com*