You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需重启,从命令行清空Docker容器中Memcached的全部缓存?

如何在Docker环境下清空Memcached缓存(无需重启服务)

嘿,这个需求我经常碰到,其实不用折腾重启服务,利用Memcached自带的命令就能轻松搞定!下面给你两种实用的操作方式:

方式一:交互式执行(适合手动操作)

Memcached内置了flush_all命令专门用来清空所有缓存,我们可以通过docker exec直接进入容器的telnet会话来执行:

  1. 先找到你的Memcached容器名或ID,用docker ps就能看到
  2. 执行命令进入telnet交互模式:
    docker exec -it <容器名/容器ID> telnet localhost 11211
    
  3. 在弹出的会话里输入flush_all并回车,看到返回OK就说明缓存已经清空了
  4. 最后输入quit退出telnet会话就行

方式二:非交互式一键执行(适合脚本或批量操作)

如果不想进入交互模式,或者要写进自动化脚本里,可以用管道直接把命令传进去,一步到位:

echo "flush_all" | docker exec -i <容器名/容器ID> nc localhost 11211

这里用nc(netcat)替代telnet,同样能和Memcached服务通信执行命令,执行后会返回OK,表示操作成功。

额外说明

  • flush_all命令只是逻辑上清空缓存,把所有缓存条目标记为过期,Memcached会在后续自动回收内存,完全不会中断服务运行
  • 如果需要延迟清空,可以加个时间参数,比如flush_all 60表示60秒后清空所有缓存
  • 记得把命令里的<容器名/容器ID>替换成你实际的Memcached容器信息哦!

内容的提问来源于stack exchange,提问作者caot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:36:31