清除全部缓存
redis-cli FLUSHDB # 清空当前数据库
redis-cli FLUSHALL # 清空所有数据库
redis-cli -n 1 FLUSHDB # 清空第 1 号数据库
在 Redis 里,数据是分库存放的(默认有 16 个数据库,编号 0–15)。如果只想清空某个特定数据库的缓存,可以用以下几种方法:
# 清空 0 号数据库(默认库)
redis-cli -n 0 FLUSHDB
# 清空 1 号数据库
redis-cli -n 1 FLUSHDB
# 清空 2 号数据库
redis-cli -n 2 FLUSHDB
如果没有特别配置,大多数应用都使用 0 号库。
所以大部分情况下只需要清空 0 号数据库就行。
提取 Redis 中的前缀
简单查看 key(小数据量时):
redis-cli KEYS "*"
⚠️ 注意:KEYS 会一次性返回所有 key,在大数据量场景下可能严重阻塞 Redis,不建议生产环境用。
提取冒号前一级前缀:
redis-cli --scan | cut -d ":" -f1 | sort | uniq -c
示例结果可能是:
1 auth
6 cache
2 system
提取更深层的前缀:
如果你想看两级前缀,比如 cache:user
,用:
redis-cli --scan | cut -d ":" -f1,2 | sort | uniq -c
示例结果:
1 auth:session_id
5 cache:user
1 cache:System
这样就能看到 Redis 里有哪些命名空间(前缀),以及大概数量。
删除特定前缀key
用 SCAN
+ DEL
(推荐安全做法)
redis-cli --scan --pattern "cache:*" | xargs redis-cli del
解释:
--scan
:迭代遍历 key,不会阻塞。--pattern "cache:*"
:匹配所有以cache:
开头的 key。xargs redis-cli del
:把结果传给DEL
删除。
再精细一点:
redis-cli --scan --pattern "cache:user:*" | xargs -r redis-cli del
Docker版Redis
方法一:直接在宿主机执行
不用进入容器,直接用一条命令:
docker exec -it myredis redis-cli FLUSHDB
或者:
docker exec -it myredis redis-cli FLUSHALL
清空特定数据库(比如 1 号库):
docker exec -it myredis redis-cli -n 1 FLUSHDB
删除特定前缀的 Key:
如果只想清理部分缓存(例如 cache:*
):
docker exec -it myredis redis-cli --scan --pattern "cache:*" | xargs docker exec -i myredis redis-cli del
⚠️ 注意:这种方式要谨慎,大量 key 时可能要写成脚本循环删除。
方法二:进入容器执行命令
查看 Redis 容器的名字或 ID:
docker ps
假设容器名是 myredis
。
进入容器:
docker exec -it myredis redis-cli
在容器内执行清理命令:
- 清空当前数据库:
FLUSHDB
- 清空所有数据库:
FLUSHALL