如何清除Redis缓存

共计 1271 个字符,预计需要花费 4 分钟才能阅读完成。

清除全部缓存

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
    

 

正文完
 0
admin
版权声明:本站原创文章,由 admin 于2025-09-25发表,共计1271字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
原来频道被人恶意举报…… 新电报频道 | 加入电报群