Redis作为当前最流行的内存数据库之一,在缓存、消息队列、会话存储等场景中广泛应用。虽然官方推荐在Linux环境下运行Redis,但很多开发者由于开发环境限制或学习需求,仍然需要在Windows平台上使用Redis。这里需要明确的是,Windows版Redis并非官方原生支持版本,而是由社区维护的移植版本。
重要提示:Windows版Redis在生产环境中的稳定性和性能表现与Linux版存在差距,建议仅用于开发测试环境。对于正式生产部署,强烈建议使用Linux服务器。
目前Windows平台主要有两个维护来源:
这两个版本都基于Redis源码进行了Windows适配,但更新节奏不同。微软版本停留在3.x时代,而tporadowski版本已跟进到5.x版本(截至本文写作时最新为5.0.14)。
首先需要根据需求选择合适的版本下载:
微软维护版(适合需要3.x特性的场景):
GitHub下载地址
tporadowski维护版(推荐,更新更活跃):
GitHub下载地址
下载时注意选择.msi安装包或.zip压缩包。对于开发者推荐下载.zip版本,便于灵活部署。
将下载的压缩包解压到目标目录,例如D:\Redis。解压后的目录应包含以下关键文件:
code复制redis-server.exe # Redis服务端程序
redis-cli.exe # Redis命令行客户端
redis.windows.conf # 主配置文件
redis-benchmark.exe # 性能测试工具
redis-check-aof.exe # AOF文件修复工具
redis-check-rdb.exe # RDB文件检查工具
专业建议:将Redis目录放在非系统盘且路径中不含空格的目录下,如
D:\DevTools\Redis,避免权限问题和路径解析错误。
为了后续操作方便,建议将Redis目录添加到系统PATH环境变量中:
D:\Redis)配置完成后,在任何路径下都可以直接执行redis命令,无需输入完整路径。
打开命令提示符(cmd),执行以下命令启动Redis服务:
bash复制redis-server.exe redis.windows.conf
如果已配置环境变量,可直接执行:
bash复制redis-server redis.windows.conf
成功启动后,终端会显示Redis图标和端口信息(默认6379):
code复制[1234] 01 Jan 00:00:00.123 # Server started, Redis version 5.0.14
[1234] 01 Jan 00:00:00.123 * Ready to accept connections
注意:不要关闭这个命令窗口,否则Redis服务会停止。如需后台运行,需要配置Windows服务。
另开一个命令窗口,执行以下命令启动Redis客户端:
bash复制redis-cli.exe
连接成功后会出现提示符:
code复制127.0.0.1:6379>
在客户端中执行以下命令测试基本功能:
bash复制# 测试连接
ping
# 应返回 PONG
# 设置键值
set test_key "Hello Redis"
# 返回 OK
# 获取键值
get test_key
# 返回 "Hello Redis"
# 设置过期时间
expire test_key 5
# 返回 1(表示成功)
# 5秒后再次获取
get test_key
# 返回 (nil)
Redis的核心配置文件redis.windows.conf包含许多重要参数:
conf复制# 绑定IP地址(默认只允许本地连接)
bind 127.0.0.1
# 监听端口
port 6379
# 最大内存限制(示例设置为1GB)
maxmemory 1gb
# 内存淘汰策略
maxmemory-policy volatile-lru
# 持久化配置
save 900 1 # 900秒内至少1次修改则保存
save 300 10 # 300秒内至少10次修改则保存
save 60 10000 # 60秒内至少10000次修改则保存
修改配置后需要重启Redis服务才能生效。
Windows版Redis支持两种持久化方式:
RDB(快照):
save 60 1000(60秒内1000次修改则保存)AOF(追加日志):
conf复制appendonly yes
appendfsync everysec
生产环境建议同时启用两种方式,但要注意磁盘空间和性能开销。
conf复制# 最大客户端连接数
maxclients 10000
# TCP连接保活时间
tcp-keepalive 60
# 禁用保护模式(允许远程连接时需要)
protected-mode no
问题现象:执行redis-server后窗口立即关闭
可能原因及解决:
redis.windows.conf中的端口号maxmemory参数问题现象:redis-cli连接失败
解决步骤:
问题现象:重启后数据丢失
解决方案:
虽然Windows版Redis可以用于开发测试,但生产环境部署时应注意:
redis-cli info命令获取运行状态对于Java开发者,连接Redis时推荐使用Jedis或Lettuce客户端,并合理配置连接池参数:
java复制JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(128);
poolConfig.setMaxIdle(32);
poolConfig.setMinIdle(8);
JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379);
避免每次手动启动,可以将Redis注册为Windows服务:
bash复制# 安装服务
redis-server --service-install redis.windows.conf --service-name Redis
# 启动服务
redis-server --service-start --service-name Redis
# 停止服务
redis-server --service-stop --service-name Redis
使用内置的benchmark工具测试Redis性能:
bash复制redis-benchmark -n 100000 -c 32 -t set,get
参数说明:
-n 100000:执行10万次操作-c 32:使用32个并发连接-t set,get:测试set和get命令手动备份:
SAVE命令创建RDB快照恢复数据:
user:1000:profile对于Java项目,典型的使用模式:
java复制try (Jedis jedis = jedisPool.getResource()) {
// 设置值
jedis.set("counter", "100");
// 使用事务
Transaction t = jedis.multi();
t.incr("counter");
t.expire("counter", 60);
t.exec();
// 使用Pipeline
Pipeline p = jedis.pipelined();
p.set("key1", "value1");
p.set("key2", "value2");
p.sync();
}
通过redis-cli info命令获取的指标包括:
如果Windows版Redis无法满足需求,可以考虑:
对于Java开发者,无论选择哪种方案,客户端代码通常只需要修改连接配置即可适配。