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

Windows本地Docker部署Redis无法存储,如何开启Memory overcommit?

解决Windows Docker中Redis的内存超配警告问题

你遇到的Redis警告是因为未开启内存超配(vm.overcommit_memory=1),这可能导致后台存盘、数据复制在低内存甚至正常内存场景下失败,以下是几种可行的解决方法:

方法一:修改docker-compose配置,启动时自动设置参数

直接在docker-compose.yml中给Redis容器添加特权模式,并在启动前执行内核参数配置命令:

version: '3'
services:
  redis:
    image: "redis"
    ports:
      - "6379:6379"
    networks:
      - my-service
    privileged: true
    command: sh -c "sysctl vm.overcommit_memory=1 && redis-server"

networks:
  my-service:
    external: true

privileged: true会赋予容器修改内核参数的权限,启动脚本先完成参数配置再启动Redis服务。

方法二:修改WSL2系统配置(Docker Desktop默认用WSL2后端)

如果你的Docker使用WSL2作为后端,直接修改WSL2子系统的内核参数即可:

  • 打开WSL2终端(比如Ubuntu子系统)
  • 编辑/etc/sysctl.conf文件,添加一行:vm.overcommit_memory = 1
  • 执行命令sysctl -p让配置立即生效
  • 重启Redis容器,警告即可消失

方法三:临时忽略警告(不推荐生产环境使用)

如果只是测试环境不想调整系统参数,可以在Redis启动时添加忽略警告的参数:
修改docker-compose中的command为:

command: redis-server --ignore-warnings "OOM"

该方法只是屏蔽警告,并未解决根本问题,生产环境不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:52:41