Redis是内存数据库,用来做缓存。现在几乎所有Java后端项目都用Redis,不装的话项目大概率启动报错或者运行很慢。
一、版本说明
Windows上跑Redis有点坑,因为Redis官方不支持Windows。
| 方式 | 说明 |
|---|---|
| Redis for Windows | 微软维护的Windows版本,停在3.x,比较老 |
| WSL2 + Linux Redis | 在Windows里跑Linux子系统,用官方Redis,推荐 |
| Docker + Redis | 装Docker Desktop,用容器跑Redis,干净 |
| Memurai | Redis的Windows兼容版本,免费版够用 |
推荐方案: 入职如果公司没特殊要求,用Docker跑Redis最省心。如果你不想装Docker,用Redis for Windows的GitHub版本(社区维护,支持到7.x)。
二、方案1:Redis for Windows(GitHub版)
1. 下载
GitHub地址:https://github.com/tporadowski/redis/releases
下载Redis-x64-5.x.x.msi(安装版)或.zip(免安装版)。
推荐下载.zip版,解压即用,灵活。
2. 安装/解压
解压到一个无中文无空格的目录:
D:\Java\Redis
目录结构:
Redis/
redis-server.exe # 服务端
redis-cli.exe # 客户端
redis.windows.conf # Windows配置文件
redis-benchmark.exe # 性能测试工具
3. 启动Redis
打开cmd,进入Redis目录:
cd D:\Java\Redis
redis-server.exe
看到类似输出就说明启动成功了:
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.14 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 12345
`-._ `-._ `-./ _.-' _.-'
...
这个窗口不能关,关了Redis就停了。
4. 测试连接
新开一个cmd窗口:
cd D:\Java\Redis
redis-cli.exe
输入:
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name "test"
OK
127.0.0.1:6379> get name
"test"
能存能取就说明Redis正常工作了。
5. 注册为Windows服务
每次开cmd启动太麻烦,注册为Windows服务自动启动:
# 注册服务
redis-server.exe --service-install redis.windows.conf
# 启动服务
redis-server.exe --service-start
# 停止服务
redis-server.exe --service-stop
# 卸载服务
redis-server.exe --service-uninstall
注册后在Windows服务列表就能看到Redis服务了,设为自动启动就行。
三、方案2:Docker跑Redis
前提:装好Docker Desktop
下载:https://www.docker.com/products/docker-desktop/
装好后启动Docker Desktop,等右下角图标变绿。
拉取Redis镜像
docker pull redis:7.2
运行Redis容器
docker run -d ^
--name my-redis ^
-p 6379:6379 ^
-v D:/Java/redis-data:/data ^
redis:7.2 ^
redis-server --requirepass "Redis@123456" --appendonly yes
参数说明:
-d:后台运行--name my-redis:容器名字-p 6379:6379:端口映射-v D:/Java/redis-data:/data:数据持久化到本地目录--requirepass:设置密码--appendonly yes:开启AOF持久化
验证
docker exec -it my-redis redis-cli
127.0.0.1:6379> ping
PONG
带密码连接:
docker exec -it my-redis redis-cli -a Redis@123456
四、方案3:WSL2安装Redis
1. 启用WSL2
以管理员身份打开PowerShell:
wsl --install
重启电脑,设置Linux用户名和密码。
2. 安装Redis
进入WSL终端:
sudo apt update
sudo apt install redis-server
3. 启动Redis
sudo service redis-server start
4. 验证
redis-cli
127.0.0.1:6379> ping
PONG
WSL2的Redis默认监听127.0.0.1:6379,Windows本机的应用可以直接连。
五、Redis配置(重要)
不管哪种安装方式,配置文件都需要改几个关键项。
Redis配置文件位置
- Windows版:
D:\Java\Redis\redis.windows.conf - Docker版:容器内
/usr/local/etc/redis/redis.conf,或挂载外部配置文件 - WSL版:
/etc/redis/redis.conf
关键配置项
# 绑定地址,改为允许远程访问
# 只允许本地:
bind 127.0.0.1
# 允许所有IP(开发环境用):
# bind 0.0.0.0
# 端口
port 6379
# 密码(生产环境必须设,开发环境看项目要求)
requirepass Redis@123456
# 最大内存(根据你电脑内存调整)
maxmemory 512mb
# 内存满了的淘汰策略
# allkeys-lru: 淘汰最久没用的key(推荐)
maxmemory-policy allkeys-lru
# 是否开启AOF持久化
appendonly yes
# 日志级别
loglevel notice
# 超时时间(秒),0表示不超时
timeout 0
# 数据库数量,默认16个库
databases 16
改完配置后重启Redis生效。
六、设置密码
方法1:配置文件设置
在配置文件里添加:
requirepass 你的密码
重启Redis。
方法2:命令行动态设置
连接Redis后:
# 没密码时直接执行
127.0.0.1:6379> CONFIG SET requirepass "Redis@123456"
OK
# 验证
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) "Redis@123456"
注意:命令行设置的重启后失效,永久生效要写配置文件。
连接有密码的Redis
# 命令行连接
redis-cli -a Redis@123456
# 或连接后认证
redis-cli
127.0.0.1:6379> AUTH Redis@123456
OK
七、图形化管理工具
命令行用着不方便,装个图形化工具。
推荐:Another Redis Desktop Manager
GitHub:https://github.com/qishibo/AnotherRedisDesktopManager
- 免费开源
- 界面好看,支持SSH隧道
- 下载
.exe直接装
RedisInsight(官方)
下载:https://redis.io/insight/
- Redis官方出品
- 功能强大,支持数据分析和监控
- 免费使用
IDEA连接Redis
装插件:File → Settings → Plugins → 搜Redis
推荐插件:
- Redis(插件名就叫这个):在IDEA里直接看Redis数据
连接配置:
- 打开IDEA的Redis面板
- 点
+新建连接 - 填 Host:
127.0.0.1、Port:6379、Password:你的密码 - 测试连接 → OK
八、常见问题
问题1:Redis启动报错 Creating Server TCP listening socket
端口6379被占用了。
# 查看端口占用
netstat -ano | findstr 6379
# 杀掉占用进程
taskkill /PID 进程ID /F
或者改Redis端口:在配置文件里port 6380。
问题2:连上了但操作报 NOAUTH Authentication required
Redis设了密码但连接时没输密码。
# 连接时带密码
redis-cli -a 你的密码
# 或者连接后认证
127.0.0.1:6379> AUTH 你的密码
问题3:远程连不上Redis
排查步骤:
- 配置文件
bind是否改为0.0.0.0 - 防火墙是否放行6379端口
- 密码是否正确
protected-mode是否设为no(开发环境)
# 防火墙放行6379
netsh advfirewall firewall add rule name="Redis 6379" dir=in action=allow protocol=TCP localport=6379
问题4:Redis存了数据重启后丢了
没开持久化。
在配置文件里确认:
appendonly yes
重启Redis,数据就会持久化到AOF文件。
问题5:项目连接Redis报 WRONGPASS
密码不对。
检查:
- yml/properties配置文件里的Redis密码是否正确
- 密码有没有多余的空格
- Docker容器里的密码和外部连接的密码是否一致
九、SpringBoot项目连接Redis配置
项目里通常这样配置(提前了解,后面讲项目运行时详细说):
application.yml
spring:
redis:
host: 127.0.0.1
port: 6379
password: Redis@123456
database: 0 # 使用的数据库编号,0-15
timeout: 3000ms
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: -1ms
application.properties
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=Redis@123456
spring.redis.database=0
spring.redis.timeout=3000
小结
| 安装方式 | 推荐场景 |
|---|---|
| Redis for Windows | 最简单,开发够用 |
| Docker | 干净,推荐有Docker基础的人 |
| WSL2 | 最接近生产环境,但配置稍复杂 |
| 关键配置 | 说明 |
|---|---|
| bind | 控制允许连接的IP |
| requirepass | 密码,生产必设 |
| appendonly | 持久化,防止丢数据 |
| maxmemory | 限制内存,防止吃满 |
Redis装好了,下一步搞Git。