如何清除Redis缓存 | VPSVPN
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 auth6 cache2 system提取更深层的前缀:
如果你想看两级前缀,比如 cache:user,用:
redis-cli --scan | cut -d ":" -f1,2 | sort | uniq -c示例结果:
1 auth:session_id5 cache:user1 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 delDocker版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
页:
[1]