如何清除Redis缓存

linux admin 4天前 61次浏览 0个评论

清除全部缓存

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
    

 


原频道被人恶意举报新电报频道|加入电报群
转载请注明原文链接:如何清除Redis缓存
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址