1. 项目缘起:为什么选择在Windows上安装Redis 5.0.14.1?
如果你是一名后端开发者,或者正在学习缓存、消息队列相关的技术,Redis这个名字你一定不陌生。它是一个开源的、基于内存的键值存储数据库,常被用作缓存、消息代理和实时数据处理。虽然Redis官方主要支持Linux和macOS,但很多开发者,尤其是刚入门或者项目环境限制,都绕不开在Windows系统上部署Redis这一步。我自己在带新人或者处理一些遗留项目时,就经常遇到需要在Windows服务器或开发机上安装Redis的需求。
网上关于Windows安装Redis的资料很多,但质量参差不齐。有的教程让你去下载一个早已停止维护的“Microsoft Open Tech”版本,那个版本不仅老旧,而且存在不少兼容性问题;有的则引导你使用WSL(Windows Subsystem for Linux),这对于只想快速在原生Windows环境跑起来的人来说,步骤又略显繁琐。今天我要分享的,是直接使用官方认可的.msi安装包进行安装的方法,版本是Redis 5.0.14.1。这个版本在Redis 5.x系列中比较稳定,对于学习和大多数生产前期的测试环境来说,功能完全够用。我最近在给团队搭建一套新的演示环境时,就重新走了一遍这个流程,确保每一步都清晰、可复现,避开了那些常见的“坑”。
2. 安装前的核心准备:获取正确的安装包与环境确认
在Windows上安装软件,最怕的就是下载到来源不明的安装包,轻则安装失败,重则引入安全风险。对于Redis,我们必须从可信的渠道获取。
2.1 官方渠道与版本选择
Redis官方并不直接提供Windows版本的二进制文件。目前,由tporadowski维护的Redis for Windows项目是社区中最受认可且持续更新的版本。我们可以在GitHub上找到它的发布页面。
- 访问发布页面:打开浏览器,访问
https://github.com/tporadowski/redis/releases。这是获取安装包最直接的官方渠道。 - 寻找目标版本:在发布列表中,找到
Redis 5.0.14.1版本。你可能需要滚动页面查找。发布页通常会提供多个文件,我们需要的是以.msi结尾的安装包,例如Redis-x64-5.0.14.1.msi。这里有一个关键点:请务必根据你的系统架构选择。虽然现在绝大多数Windows电脑都是64位系统,但如果你不确定,可以在桌面上右键点击“此电脑” -> “属性”,查看“系统类型”。对于64位系统,就选择带x64标识的.msi文件。
注意:网络上有些教程会引导你去一个叫
https://github.com/microsoftarchive/redis的仓库,这是微软多年前维护的旧版本(最高到3.2),早已停止更新,存在已知的安全漏洞和稳定性问题,强烈不建议使用。
2.2 系统环境检查
下载安装包前,最好做一次简单的系统环境检查,这能避免很多后续的莫名错误。
- 管理员权限:安装系统服务、写入
Program Files目录等操作需要管理员权限。请确保你用于安装的账户拥有管理员权限。最简便的方法是,在找到下载的.msi文件后,右键点击它,然后选择“以管理员身份运行”。 - 防病毒软件/安全软件:有时,安全软件可能会拦截Redis安装程序对系统服务的操作,或者误报其可执行文件。在安装过程中,如果遇到拦截提示,请选择“允许”或“信任”。如果安装后无法启动,可以尝试暂时禁用安全软件(仅用于测试),并将Redis的安装目录添加到信任区。
- 端口占用检查:Redis默认使用
6379端口。在安装前,你可以打开命令提示符(CMD)或PowerShell,输入命令netstat -ano | findstr :6379来检查该端口是否已被其他程序(如旧的Redis实例、某些游戏服务等)占用。如果该命令有返回结果,说明端口被占用,你需要决定是停止占用该端口的服务,还是在安装后为Redis配置另一个端口。
3. 逐步详解:使用MSI安装包安装Redis 5.0.14.1
现在,我们假设你已经从GitHub Releases页面下载好了Redis-x64-5.0.14.1.msi文件。让我们开始一步步安装。
3.1 启动安装向导与许可协议
找到你下载的.msi文件,右键单击并选择“以管理员身份运行”。这是至关重要的一步,能避免因权限不足导致服务注册失败。
安装向导启动后,第一个界面通常是欢迎界面,直接点击“Next”即可。接下来会看到“End-User License Agreement”(最终用户许可协议),勾选“I accept the terms in the License Agreement”(我接受许可协议中的条款),然后点击“Next”。
3.2 关键配置选项解析
接下来是安装配置的核心页面,这里有几个选项需要你理解并做出选择:
安装路径(Destination Folder):
- 默认路径通常是
C:\Program Files\Redis\。我个人习惯将其安装在一个没有空格和中文的路径下,比如D:\Redis\,这样可以避免一些古老软件或脚本因路径空格而报错。你可以点击“Browse...”进行修改。不过,对于大多数标准使用场景,使用默认路径完全没有问题。
- 默认路径通常是
添加到环境变量(Add the Redis installation folder to the PATH environment variable):
- 强烈建议勾选。这个选项会把Redis的可执行文件目录(比如
C:\Program Files\Redis\)添加到系统的PATH环境变量中。勾选后,你就可以在命令提示符或PowerShell的任何位置直接输入redis-cli、redis-server等命令,而不需要每次都切换到Redis的安装目录。这极大地方便了日常操作。
- 强烈建议勾选。这个选项会把Redis的可执行文件目录(比如
安装服务并启动(Install Redis as a Windows Service and start it):
- 这是本教程的核心价值所在,务必勾选。这个选项会帮你完成几件麻烦事:
- 将Redis服务器(
redis-server)注册为一个Windows系统服务。 - 服务默认设置为“自动启动”,这意味着每次Windows开机时,Redis服务会自动在后台运行,无需手动干预。
- 在安装完成的瞬间,自动启动这个服务。
- 将Redis服务器(
- 如果不勾选,你每次需要用到Redis时,都得手动打开一个命令行窗口,运行
redis-server命令,并且这个窗口不能关闭,否则Redis服务就停止了。这对于开发测试尚可忍受,但对于需要持续运行的服务来说是灾难性的。
- 这是本教程的核心价值所在,务必勾选。这个选项会帮你完成几件麻烦事:
防火墙例外(Add an exception to the Windows Firewall):
- 如果你需要在当前机器上访问Redis(比如从本机的另一个应用连接),或者仅从本机测试,可以不勾选。
- 如果你需要让同一局域网内的其他机器也能连接到这台Windows机器上的Redis,那么必须勾选。这个操作会在Windows防火墙中为Redis的默认端口(6379)创建一个入站规则,允许外部连接。否则,外部连接请求会被防火墙直接拒绝。
配置完成后,点击“Next”。接下来可能会有一个设置最大内存限制的页面,对于学习和测试环境,可以直接使用默认值(无限制),点击“Next”继续。随后进入确认安装页面,点击“Install”开始安装。
3.3 安装完成与验证
安装过程通常很快。安装完成后,会提示“Completed the Redis Setup Wizard”。你可以先不着急点“Finish”。
首先,让我们验证服务是否成功安装并运行:
- 按下
Win + R键,输入services.msc并回车,打开“服务”管理控制台。 - 在服务列表中找到名为“Redis”的服务。你应该能看到它的“状态”是“正在运行”,“启动类型”是“自动”。
- 如果状态是“已停止”,可以右键点击该服务,选择“启动”。
- 如果连“Redis”服务都找不到,说明服务注册可能失败了。这通常是因为没有“以管理员身份运行”安装程序。你需要卸载后重新以管理员身份安装。
其次,验证Redis是否真的能正常工作:
- 打开一个新的命令提示符(CMD)或PowerShell窗口。
- 输入命令
redis-cli ping。如果一切正常,你会看到Redis服务器返回一个PONG的响应。
这个简单的C:\Users\YourName>redis-cli ping PONGPING-PONG交互,证明了Redis服务器正在运行,并且客户端可以成功连接到它。
至此,Redis的安装和基本验证就完成了。你可以点击安装向导的“Finish”按钮关闭它。
4. 安装后的核心配置与基础操作
安装只是第一步,了解如何配置和使用才是关键。Redis的配置文件位于其安装目录下,名为redis.windows-service.conf(如果你安装为服务)或redis.windows.conf(非服务模式)。
4.1 理解与修改关键配置
用记事本或其他文本编辑器(如VS Code)打开这个配置文件,你会看到很多选项。对于初学者,重点关注以下几项:
bind 127.0.0.1:这行配置指定Redis监听哪个网络接口。127.0.0.1表示只允许本机连接。如果你想允许其他机器连接,可以将其改为bind 0.0.0.0(监听所有接口)或者改为你服务器的具体IP地址。注意:修改为0.0.0.0后,必须确保防火墙(安装时勾选了例外)或网络安全组(如果是在云服务器上)允许了6379端口的入站连接,否则依然无法访问。port 6379:Redis服务监听的端口。如果6379被占用,可以修改为其他未被占用的端口,例如6380。修改后,客户端连接时需要指定新端口。requirepass foobared:默认是注释掉的(以#开头),表示没有密码。在生产环境或暴露在公网的测试环境中,强烈建议设置一个强密码。取消注释(删除行首的#),并将foobared替换为你自己的复杂密码,例如requirepass MyStrongPassword123!。maxmemory 100mb:设置Redis最大可用内存。默认可能被注释或设置得很大。对于测试,可以保持默认。对于内存有限的服务器,需要根据实际情况设置,并配合maxmemory-policy策略(如allkeys-lru)来定义内存满时的淘汰规则,防止Redis耗尽所有系统内存。
修改配置后的重要步骤:每次修改完redis.windows-service.conf文件后,必须重启Redis服务才能使新配置生效。回到“服务”管理控制台,找到“Redis”服务,右键选择“重新启动”即可。
4.2 使用Redis命令行客户端(redis-cli)进行基本操作
redis-cli是你与Redis服务器交互的主要工具。打开命令提示符,输入redis-cli即可进入交互模式(如果Redis设置了密码且你未在连接时指定,会提示NOAUTH Authentication required)。
- 连接与认证:
- 无密码连接本机默认端口:
redis-cli - 连接指定主机和端口:
redis-cli -h 192.168.1.100 -p 6380 - 连接时指定密码:
redis-cli -a MyStrongPassword123!(注意,密码会出现在命令历史中,不安全)或先连接,再用AUTH命令认证。
- 无密码连接本机默认端口:
- 基础数据操作:
127.0.0.1:6379> SET mykey "Hello Redis" // 设置一个字符串键值对 OK 127.0.0.1:6379> GET mykey // 获取键的值 "Hello Redis" 127.0.0.1:6379> HSET user:1000 name "Alice" age 30 // 设置哈希(Hash)字段 (integer) 2 127.0.0.1:6379> HGETALL user:1000 // 获取哈希所有字段和值 1) "name" 2) "Alice" 3) "age" 4) "30" 127.0.0.1:6379> LPUSH mylist "world" // 从列表左侧插入元素 (integer) 1 127.0.0.1:6379> LPUSH mylist "hello" (integer) 2 127.0.0.1:6379> LRANGE mylist 0 -1 // 获取列表所有元素 1) "hello" 2) "world" - 信息查看与服务管理:
INFO:查看Redis服务器的详尽信息和统计。CLIENT LIST:查看当前所有客户端连接。SHUTDOWN:关闭Redis服务器(在cli中)。对于服务模式,更推荐在“服务”控制台中停止。
4.3 将Redis配置为开机自启动服务(补充)
虽然MSI安装包通常已经帮我们设置好了,但了解其原理有益无害。我们安装时勾选的选项,本质上是执行了以下命令:
redis-server --service-install redis.windows-service.conf --loglevel verbose --service-name Redis--service-install:安装服务。redis.windows-service.conf:指定服务模式使用的配置文件。--service-name Redis:指定服务名称为“Redis”。
如果你想手动卸载这个服务,可以在安装目录下打开命令行(管理员权限),运行:
redis-server --service-uninstall5. 实战中遇到的典型问题与排查思路
即便按照教程一步步来,在实际环境中也可能遇到问题。下面是我和团队在多次部署中总结的几个常见“坑”及其解决方法。
5.1 服务启动失败:错误1067或1053
这是最常见的错误之一。在“服务”管理器中尝试启动Redis服务时,可能会提示“错误1067:进程意外终止”或“错误1053:服务没有及时响应启动或控制请求”。
排查步骤:
- 检查日志文件:这是定位问题的第一步。Redis for Windows的日志默认输出到Windows的“事件查看器”。按下
Win + R,输入eventvwr.msc打开事件查看器,依次展开“Windows 日志” -> “应用程序”。在右侧的日志列表中,查找来源为“Redis”的错误事件。双击查看其详细信息,通常会包含导致启动失败的具体原因,比如“配置文件第XX行语法错误”、“无法绑定端口”等。 - 检查配置文件语法:日志中如果提示配置文件错误,请仔细检查
redis.windows-service.conf文件。常见的语法错误包括:行末有多余的空格、错误的缩进、参数拼写错误、取消了注释但格式不对等。一个稳妥的方法是,先备份原配置,然后用一个最简单的配置(只保留bind、port等必要参数)测试服务是否能启动。 - 检查端口占用:即使安装前检查过,也可能在安装后被其他进程占用。再次使用
netstat -ano | findstr :6379命令检查。如果发现被占用,记下PID(进程ID),然后在任务管理器的“详细信息”选项卡中根据PID结束该进程,或者修改Redis的监听端口。 - 检查数据目录权限:Redis需要向它的工作目录(默认在安装目录下)写入持久化文件(如
dump.rdb)和日志。确保运行Redis服务的账户(通常是NETWORK SERVICE或Local System)对该目录有“完全控制”的NTFS权限。可以在安装目录上右键 -> “属性” -> “安全”选项卡中进行检查和修改。
5.2 客户端无法连接:连接被拒绝
从redis-cli或其他客户端(如Python的redis-py库)连接时,收到“Connection refused”或“No connection could be made”错误。
排查思路:
- 服务是否运行:首先确认Redis Windows服务是否处于“正在运行”状态。
- 防火墙是否放行:如果你需要从其他机器连接,请确保:
- 安装时勾选了防火墙例外。
- 或者,手动在“Windows Defender 防火墙” -> “高级设置”中,为6379端口(TCP协议)添加入站规则。
- 如果使用的是云服务器(如阿里云、腾讯云ECS),还需要在云服务商的安全组规则中放行6379端口。
- 绑定地址是否正确:检查配置文件中的
bind设置。如果是bind 127.0.0.1,则只允许本机连接。需要改为服务器的实际IP或0.0.0.0并重启服务。 - 密码认证问题:如果服务器配置了密码(
requirepass),客户端连接时必须提供密码。在redis-cli中,可以使用AUTH yourpassword命令,或者在连接字符串中指定。
5.3 性能与内存相关注意事项
Windows并非Redis的最佳运行平台,其I/O性能和内存管理与Linux有差异,在Windows上运行Redis需要注意:
- 持久化性能:Redis的RDB快照和AOF日志持久化在Windows上可能比在Linux上慢,尤其是在虚拟机中。对于写入频繁的场景,需要关注持久化对性能的影响。可以考虑将持久化文件放在SSD硬盘上,并适当调整
save配置(减少快照频率)或使用appendfsync everysec(AOF每秒同步)作为折中方案。 - 内存管理:务必设置
maxmemory参数。Windows系统没有像Linux那样的“overcommit”机制,如果Redis占用内存失控,可能导致整个Windows系统因内存不足而变得极慢甚至崩溃。设置maxmemory并配合合理的maxmemory-policy(如volatile-lru)是生产环境的基本要求。 - 虚拟内存问题:在低内存的Windows系统上,如果Redis和多个其他应用同时运行,可能会触发大量的磁盘交换(分页文件),导致性能急剧下降。确保系统有足够的物理内存,并监控任务管理器中的“内存”和“磁盘”活动情况。
6. 进阶使用:与常见开发环境集成
安装好Redis后,它如何融入到你的开发栈中呢?这里简单提两个最常用的场景。
6.1 在Python项目中使用Redis
Python通过redis这个第三方库来连接和操作Redis,它几乎是事实上的标准。
- 安装客户端库:在命令行中运行
pip install redis。 - 基础连接与操作:
在实际项目中,你可能会用Redis做缓存(缓存数据库查询结果、会话Session)、做简单的消息队列(使用import redis # 创建连接池(推荐,避免频繁创建断开连接的开销) pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True, password='你的密码(如果没有则省略)') r = redis.Redis(connection_pool=pool) # 测试连接 print(r.ping()) # 输出:True # 字符串操作 r.set('foo', 'bar') value = r.get('foo') print(value) # 输出:bar # 哈希操作 r.hset('user:1000', mapping={'name': 'Alice', 'age': 30}) user = r.hgetall('user:1000') print(user) # 输出:{'name': 'Alice', 'age': '30'}LPUSH/BRPOP),或者利用其原子操作实现分布式锁。
6.2 可视化工具:Redis Desktop Manager / Another Redis Desktop Manager
对于不习惯命令行或者需要直观查看数据结构的开发者,可视化工具非常有用。老牌的Redis Desktop Manager (RDM)有免费版,但已停止更新。目前更流行的是开源的Another Redis Desktop Manager,它功能强大,界面现代,支持Windows、macOS和Linux。
- 下载安装:在其GitHub仓库(
https://github.com/qishibo/AnotherRedisDesktopManager)的Release页面下载对应系统的安装包。 - 连接配置:打开软件,点击“新建连接”,填写连接信息:
- 名称:自定义,如“本地Redis”
- 地址:
127.0.0.1或你的服务器IP - 端口:
6379(或你修改后的端口) - 认证:如果设置了密码,在这里填写
- 使用:连接成功后,左侧会显示所有的数据库(默认16个,编号0-15)和键。你可以浏览、搜索、编辑、删除键值,还能直接执行Redis命令,非常方便进行数据管理和调试。
通过MSI安装包在Windows上部署Redis 5.0.14.1,是一条兼顾了便捷性、稳定性和可维护性的路径。它省去了手动配置服务、环境变量的麻烦,特别适合需要快速搭建开发/测试环境的场景。关键在于理解安装过程中的每个选项的含义,以及安装后如何通过配置文件和系统服务来管理它。遇到问题时,养成首先查看事件查看器日志的习惯,能帮你快速定位大部分启动和运行期的问题。最后,记住在Windows上运行Redis要特别注意内存限制和持久化性能,根据你的实际使用场景做好规划和监控。