最稳妥方案是使用 redis-windows 社区维护的现代构建(基于 redis 7+),解压即用,双击 redis-server.exe 启动,默认监听 127.0.0.1:6379;需修改 redis.windows.conf 中 requirepass 和 protected-mode 配置并重启服务,java 客户端须显式传密码。

Windows下直接运行Redis服务端(非安装版)
Redis官方不提供Windows正式版,现在能用的只有微软维护过的旧分支(已停止更新)或Tideways等第三方编译版本。目前最稳妥的选择是使用 redis-windows 社区维护的现代构建(基于Redis 7+),它打包了 Windows 原生可执行文件,无需安装、不依赖 Visual C++ 运行库(静态链接),解压即用。
- 去 GitHub 搜索
tporadowski/redis,下载最新Redis-x64-*.zip - 解压后进目录,双击
redis-server.exe就能启动,默认监听127.0.0.1:6379 - 如果想后台运行,用命令行:
redis-server.exe redis.windows.conf—— 注意必须显式指定配置文件,否则不读.conf - 别用
redis-server --service-install:该命令在新版 Windows(尤其是 Win10 1809+ / Win11)上常失败,且注册的服务默认没设密码、没绑定地址,存在安全隐患
Java连接前必须改的3个配置项
开箱即用的 redis.windows.conf 默认禁止远程连接、无密码、不持久化——Java 应用连不上本地 Redis 的绝大多数情况,都卡在这几个默认值上。
-
bind 127.0.0.1 ::1→ 保留即可(只允许本机访问,对 Java 本地调用足够安全) -
# requirepass foobared→ 去掉注释,改成requirepass your_strong_password(Java 客户端必须显式传密码,否则报NOAUTH Authentication required) -
protected-mode yes→ 必须保持为yes(开启保护模式才能配合bind和requirepass起作用;设成no反而会拒绝所有连接)
改完配置后,务必重启 redis-server.exe,用 redis-cli.exe -a your_strong_password ping 测试是否生效。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
Lettuce vs Jedis:Java客户端选型关键差异
不是所有客户端都能友好处理 Windows 下的 Redis 配置。Jedis 是同步阻塞模型,简单直接;Lettuce 是异步响应式,资源占用低但配置稍复杂。两者在密码、SSL、超时设置上行为不一致,容易踩坑。
- Jedis 初始化时必须显式调用
auth("your_strong_password"),否则连接池里所有连接都是未认证状态,首次操作就抛JedisConnectionException - Lettuce 使用
RedisURI.Builder.redis("localhost", 6379).withPassword("your_strong_password"),漏掉withPassword会静默失败(日志里只有Authentication failed,无堆栈) - 两者默认连接超时都是 2000ms,但在 Windows 上若 Redis 启动慢(比如加载大
dump.rdb),建议把timeout设到 5000ms 以上,否则 Spring Boot 启动时可能因连接失败直接退出
Java调用时最容易忽略的 Windows 特定问题
不是代码写错了,而是环境和路径细节导致连接反复失败。这些问题在 Linux/macOS 上不存在,但在 Windows 下高频出现。
-
redis-server.exe启动后窗口一闪而退?检查当前目录下是否有redis.conf—— 如果没有,它会尝试读取同级的redis.windows.conf;但如果你双击的是桌面快捷方式,工作目录可能是C:\Users\XXX,而不是解压目录,导致配置加载失败、进程立即退出 - Spring Boot 项目里用
@Value("${spring.redis.password}")注入密码,但配置文件里写的是spring.redis.password=abc#123→#被当成了 YAML 注释符,实际注入的是空字符串,结果就是认证失败 - 用 WSL 或 Docker Desktop 的用户,别试图从 WSL 里连 Windows 主机上的
127.0.0.1:6379:WSL2 的 localhost 不等于 Windows 的 localhost,得用host.docker.internal或查 Windows 真实 IP
Windows 下跑 Redis,核心就两件事:用对二进制、配对 conf。其它所有问题,基本都是配置没生效,或者 Java 客户端没按 Redis 实际要求传参。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










