Redis清除缓存的方法

使用flushall命令可清除所有缓存

127.0.0.1:6379>flushall

查看所有key值

127.0.0.1:6379>keys *

搜索查找模糊值

127.0.0.1:6379>keys *abc*

删除对应Key值

127.0.0.1:6379>del abc

执行exit命令,退出

127.0.0.1:6379>exit  //或者ctrl+c


flushdb和flushall的区别:

1、flushall 清空数据库并执行持久化操作,也就是rdb文件会发生改变,变成76个字节大小(初始状态下为76字节),所以执行flushall之后数据库真正意义上清空了.


2、flushdb 清空数据库,但是不执行持久化操作,也就是说rdb文件不发生改变。而redis的数据是从rdb快照文件中读取加载到内存的。所以在flushdb之后,如果想恢复数据库,则可以直接kill掉redis-server进程,然后重新启动服务,这样redis重新读取rdb文件,数据恢复到flushdb操作之前的状态。


注意:要直接kill 掉redis-server服务,因为shutdown操作会触发持久化.


lsof -i:6379 命令查看redis-server的进程号,然后kill即可


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

1.使用命令行批量删除redis的key

【xxx】代表密码,【test】要搜索的字符串

redis-cli -a xxx keys *test* | xargs redis-cli -a xxx del
查询:
redis-cli -p 6377 -a xxx --scan --pattern "*test*"
删除:
redis-cli -p 6377 -a xxx --scan --pattern "*test*" | xargs -I{} redis-cli -p 6377 -a xxx DEL {}
以下命令当数据多时会阻塞,不推荐:
redis-cli -p 6377 -a xxx keys *test* | xargs -p 6377 redis-cli -a xxx del