ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Windows下Redis安装配置全教程:从下载到可视化连接

Windows下Redis安装配置全教程:从下载到可视化连接 如果你在浏览器里搜“Redis下载”大概率会看到一堆“官网下载”的链接但真正点进去之后却始终找不到Windows安装包。这不是你操作有问题而是Redis官方确实没有发布过Windows版本。我最早在Windows上装Redis时也卡在这里下载了看起来像官网的东西解压之后发现不是缺这个就是少那个要么双击没反应要么窗口一闪就没了。后来折腾多了才摸清门道Windows下跑Redis主流方案其实有三条路。这篇教程围绕最常用、最轻量的“社区移植版ZIP方案”展开从下载、配置、启动到注册成开机自启的Windows服务最后把可视化客户端连上一条龙讲清楚。适合需要在Windows上做本地缓存、消息队列、分布式锁测试以及刚入门Redis想先跑起来看看的开发者。1. Windows下的Redis选型为什么没有官方安装包以及三个可行方向1.1 Redis官方为何不提供Windows版Redis本质上对操作系统特性有依赖尤其是fork()系统调用、事件驱动模型和持久化时的后台保存机制。这些能力在Linux上非常成熟而在Windows上原生并不存在。如果要在Windows上跑Redis就得通过一层兼容层来模拟这些POSIX接口性能和稳定性都会打折扣。所以Redis官方长期以来只维护Linux版本简单说就是“Windows上跑不了官方支持版”这件事属于设计取舍不是遗漏。早期微软自己的开源团队基于Redis 3.0、3.2维护过一个Windows移植版但已经停止更新很久了。你现在如果搜到Redis 3.x的Windows版本别高兴太早那个版本太老很多现代Redis命令和数据类型相关的特性都缺失和生产环境的主流版本差异过大学了容易踩坑。1.2 三条实际可走的路线对比方案版本安装复杂度适合人群社区移植版tporadowski维护5.0.x低解压即用本地开发、学习、轻量使用Memurai兼容Redis 7.x中有安装包生产级Windows原生Redis兼容WSL / Docker Desktop跟随最新版较高依赖虚拟化需要Linux环境一致的线上模拟Memurai是面向Windows的Redis兼容实现分免费版和商业版免费版足够学习用。WSL和Docker则是把Linux环境跑在虚拟化层里再安装官方Redis这种方式最接近真实线上环境但需要先搭好WSL或Docker Desktop对只想要个本地缓存的人来说有点重。如果你没有虚拟化环境也不想装一堆额外组件社区移植版ZIP是最省事的。虽然版本号停留在5.0.14.1但对Windows上的学习、开发和中小型项目测试来说功能完全够用。我后面讲的安装、配置和服务化都以这个版本为例。2. 从GitHub Release下载Redis并完成解压准备2.1 下载地址与版本选择说明社区维护的Windows版Redis最常用的是tporadowski/redis这个开源仓库在GitHub的Release页面里能找到两个安装文件我建议选ZIP压缩包而不是MSI安装包。ZIP的好处是绿色免安装解压到一个目录就能用将来不想要了直接删文件夹系统里不会残留服务或注册表信息。MSI安装包则适合就想一键装完、不想记命令的纯新手但安装过程会注册Windows服务卸载时反而不够干净。从热搜词里能看到很多人搜“redis下载官网”但官网上并没有Windows下载入口你能下载的只有Linux源码包。所以别再纠结“官网版”了GitHub Release上的ZIP就是目前Windows用户最主流的下载来源。2.2 解压目录与内部文件认知下载完成后我习惯把压缩包解压到一个不带中文、不带空格的纯英文路径下比如D:\redis或者C:\redis。不推荐放到C:\Program Files下面因为路径中有空格某些版本在解析配置参数时容易出幺蛾子而且权限管理也更麻烦。解压完成后目录里最重要的几个文件如下建议先认全redis-server.exeRedis服务端程序核心中的核心redis-cli.exe命令行客户端用来发送命令和服务端交互redis-benchmark.exe压测工具可以测试本机Redis的读写性能redis-check-aof.exe、redis-check-dump.exeAOF文件和RDB快照的修复检查工具redis.windows.confRedis的主配置文件启动时默认会读取它redis.windows-service.conf专用于注册成Windows服务时使用的配置刚开始别着急双击redis-server.exe先用命令行启动这样能看到完整日志出错了也能定位。2.3 把Redis目录加入环境变量这一步不是必须的但强烈建议做。把D:\redis加入系统环境变量Path后你以后可以在任意目录直接输入redis-cli、redis-server不用每次先cd到Redis目录。操作路径是右键“此电脑” - 属性 - 高级系统设置 - 环境变量 - 在系统变量中找到Path编辑新建一行填入你的Redis解压路径确定保存即可。配置完成后需要重新打开一个cmd窗口才能生效。我见过不少人跳过这一步后面每次运行都要先cd /d D:\redis麻烦不说还容易在路径上打错字。一次性设置好后面所有的命令行操作都会顺滑很多。3. 用命令行启动Redis并完成基础验证3.1 前台上运行服务端并观察启动日志打开cmd窗口进入Redis目录cd /d D:\redis redis-server.exe如果一切正常窗口里会出现类似这样的输出Redis server started * Running on 127.0.0.1:6379看到Redis server started这个关键行说明服务端已经成功跑起来了并且默认监听着本机的6379端口。此时这个cmd窗口不能关闭关闭就代表服务停止。这种“前台运行”的方式适合第一次启动、调试配置时使用因为你能在窗口里实时看到所有日志信息比如谁连上了、执行了什么命令、有没有持久化失败等。需要注意的是首次启动时如果没有加载指定的配置文件Redis会使用内置的默认配置。这个默认配置比较“裸”数据保存策略、密码、内存上限等都没有设置。下一节我会演示如何用配置文件启动。3.2 用redis-cli验证读写和Ping服务端开着再开一个新的cmd窗口输入redis-cli ping如果返回PONG说明客户端和服务端的连通性没问题。继续试几个基础命令redis-cli 127.0.0.1:6379 set name redis OK 127.0.0.1:6379 get name redis 127.0.0.1:6379 type name string可以看到Redis最基本的数据类型——字符串已经可以正常读写了。到了这一步你的Redis已经算真正跑起来了后面所有问题都只是在“把它用得更好”这个层面上展开。3.3 认识配置文件学会带配置启动上面是用默认配置启动实际使用中我们肯定要改端口、密码、持久化策略这些参数。这时就要指定配置文件启动redis-server.exe redis.windows.conf启动后Redis会读取当前目录下的redis.windows.conf。这里有个容易疏忽的点如果你把配置文件放到了别的目录启动命令里的路径也要跟着改写成绝对路径更稳妥比如redis-server.exe D:\redis\redis.windows.conf配置文件里每条配置都有注释说明建议打开后先搜索几个关键词bind、port、requirepass、save、appendonly。后面每改一个参数都要重启Redis才能生效。重启的意思是先把服务端停掉再重新用配置文件启动。如果你开着一堆客户端连接着测试重启前记得保存好数据。4. 密码、持久化和内存上限配置上线前必须处理的三个点4.1 设置requirepass密码并处理客户端认证刚装好的Redis默认没有密码如果你监听的是本机地址问题不大但一旦后面把绑定地址改成0.0.0.0以便局域网内访问再没有密码基本等于把数据裸奔在公网上。这不是危言耸听只要扫到6379端口开放马上就会被入侵。打开redis.windows.conf搜索requirepass默认这一行是被注释掉的。在它下面加一行requirepass yourStrongPassword123注意密码要选择一个足够复杂的字符串不要用123456。保存配置文件后重启Redis服务端。此时再直接用redis-cli执行命令会提示无权限(error) NOAUTH Authentication required.解决办法有两种。一种是在连接时带密码redis-cli -a yourStrongPassword123 ping另一种是进入交互模式后先认证redis-cli 127.0.0.1:6379 auth yourStrongPassword123 OK命令行里带-a参数会有一个Warning提示说这种方式不安全因为它会把密码暴露在命令行历史记录里。这个提示是真实的所以自己测试随便用但如果是多人共用的服务器尽量用auth命令或者在客户端工具里配置密码。4.2 开启AOF持久化防止重启丢数据Redis默认的持久化方式是RDB快照也就是每隔一段时间把内存里的数据全量保存到磁盘上的dump.rdb文件。RDB的缺点是如果Redis在两次快照之间意外宕机这一段时间内写入的数据就会丢失。对于Windows本地开发环境我更推荐开启AOF持久化它的思路是把每次写操作追加到日志文件里恢复时重放日志来还原数据。找到配置里的appendonly默认是no改成appendonly yes appendfsync everysecappendfsync everysec的含义是每秒同步一次日志到磁盘这是性能和可靠性比较平衡的配置。如果追求完全不丢数据可以改成always但性能会下降。Windows环境下磁盘IO性能本身不如Linux所以everysec是我实测后认为最合适的选择。改完之后重启Redis目录下会生成一个appendonly.aof文件。你可以做个小实验写入几个key然后杀掉Redis进程再重新启动那些数据都还在。这个体验对于刚接触Redis的人而言比看文档里说一万遍持久化都直观。4.3 设置内存上限与淘汰策略Redis是内存数据库如果无限往里写数据内存会被撑爆。所谓“淘汰策略”就是内存达到上限时Redis选择删除哪些key来腾出空间。这在Windows开发机上尤其重要因为Windows系统本身就很吃内存再被Redis无限制占用整个机器都会卡。在配置文件中添加maxmemory 256mb maxmemory-policy allkeys-lrumaxmemory 256mb是给Redis设置的内存上限可按需调整。allkeys-lru的意思是当内存满时优先淘汰最近最少使用的key。如果你把Redis当缓存用这个策略基本不会错。如果Redis里存的数据不能随便丢淘汰策略就要改成noeviction它会在内存满时报错拒绝写入而不是静默删除数据。内存上限设好之后可以用redis-cli观察内存数据redis-cli info memory里面会显示used_memory_human、maxmemory_human等信息你可以清楚地看到当前占用和上限的关系。这是排查Redis内存问题最常用的命令。5. 注册成Windows服务让Redis开机自动运行5.1 安装服务的正确姿势前台运行Redis的问题很明显一旦关掉cmd窗口Redis进程就没了。想让Redis像MySQL、IIS那样随Windows启动自动运行就要把它注册成Windows服务。这里必须用redis.windows-service.conf而不是redis.windows.conf因为这个配置文件里的dir数据目录路径是专门为服务场景调整过的。先关掉前面前台运行的redis-server再打开管理员身份的cmd进入Redis目录执行redis-server.exe --service-install redis.windows-service.conf --loglevel verbose命令成功后会输出类似Redis successfully installed as a service的信息。此时Windows服务列表里已经多了一个名为Redis的服务。接着启动这个服务redis-server.exe --service-start打开任务管理器 - 服务或者运行services.msc你都能看到Redis状态为“正在运行”启动类型为“自动”。以后Windows开机这个服务会自动启动不再需要手动开窗口。5.2 服务查看、停止与卸载日常管理Redis服务记住下面这几个命令就够redis-server.exe --service-stop redis-server.exe --service-start redis-server.exe --service-uninstall--service-stop停止服务--service-start启动服务--service-uninstall卸载服务。卸载前一定要先停止服务否则会提示服务还在运行中无法删除。如果你希望彻底清除数据卸载服务后还要把Redis目录下的appendonly.aof、dump.rdb一起删掉否则重新安装服务后旧数据还会被加载回来。用服务方式运行和前台运行的一个明显区别是日志不再直接打印到窗口里而是通过windows事件日志或loglevel参数记录。遇到问题排查时会稍麻烦一些建议遇到启动失败时先看Windows事件查看器里面会有Redis服务的错误记录。5.3 服务模式下的数据存放位置redis.windows-service.conf和普通配置文件最大的不同在于dir参数。dir决定RDB快照和AOF文件写到哪个目录如果路径不存在或者没有权限Redis启动可能失败。注册服务前最好先打开这个文件看一眼dir指向哪里确保路径存在或者改成自己能找到的目录dir D:\redis\data如果改了要记得手动创建这个data目录。我遇到过不少例子服务安装成功了但一直无法启动最后发现就是dir指定的目录不存在Redis在保存初始状态时直接报错退出。这种问题很隐蔽排查起来也费时间写在这里给你们避个坑。6. 客户端连接与可视化工具选择RDM还是AnotherRedisDesktopManager6.1 别被Redis Desktop Manager的官网搞晕配置好服务和密码后下一步就是用客户端连上去看看。很多人第一个反应是用Redis Desktop Manager也就是RDM。但这个工具现在的官网下载流程比较绕而且新版本已经转向商业授权模式社区版和付费版的区分也让人一头雾水。折腾半天可能下载到的是一个过期版本或试用版。我更推荐开源免费的Another Redis Desktop Manager它的GitHub仓库名称是qishibo/AnotherRedisDesktopManagerRelease页面提供Windows安装包。界面风格和RDM很像但使用逻辑更简单连接、查看key、执行命令、看内存信息这些高频操作都做得很顺手而且它支持中文界面。对新手来说只看界面就能猜到大概怎么操作。6.2 建立连接需要填写的核心参数连接配置里需要填这几个字段主机地址127.0.0.1端口6379密码之前设置的requirepass如果没设置密码就留空用户名Redis 5.x默认没有ACL用户体系留空即可填好之后点“测试连接”能看到响应耗时就说明通了。如果显示连接被拒绝或者超时大概率不是客户端问题而是服务端没有起来或者密码填写错误。还有一种情况是Redis启用了protected-mode它在默认配置下只允许本机连接非本机来源会被拒绝。6.3 可视化工具里看不到数据的排查方向连接成功后界面上会显示当前Redis里有几个库默认是db0。如果你前面用redis-cli存过key展开db0就能看到。如果发现什么key都没有先想一下自己是不是连错端口了或者服务端是不是后来换过配置文件、加载了一个空的AOF文件。可视化工具本质上是替你封装了Redis协议它执行的就是一组普通命令。遇到不理解的行为随时用redis-cli手动执行同样的命令对比结果往往比在工具里瞎猜更快。7. 远程连接配置、防火墙放行与高频故障处理7.1 让局域网内其他机器也能连接Redis本地开发难免要测试多机联动比如一台Windows机器跑Redis另一台开发机去连它。默认情况下Redis只监听127.0.0.1外部机器是连不进来的。要开放局域网访问需要改redis.windows.conf中的bind配置bind 0.0.0.00.0.0.0表示监听本机所有网卡地址。同时还需要确认protected-mode没有打开或者在配置里显式设置protected-mode no改完配置重启Redis后还要在Windows防火墙里放行6379端口。用管理员cmd执行netsh advfirewall firewall add rule nameRedisPort dirin actionallow protocolTCP localport6379之后局域网内其他机器就可以用redis-cli -h 192.168.x.x -a 密码连接了。这里必须多提醒一句一旦允许外部访问没有复杂密码的Redis就是行走的漏洞强烈建议设置强密码并定期更换最好不要直接用0.0.0.0绑定到公网网卡。7.2 6379端口被占用时的处置办法启动Redis时报Could not create server TCP listening socket *:6379: bind: No error或者类似错误说明6379端口已经被别的进程占用了。先用这条命令查谁占着端口netstat -ano | findstr 6379输出结果最后一列是进程PID。再配合任务管理器查看这个PID对应的是什么程序。如果确认是无用进程可以结束它taskkill /PID 1234 /F如果6379被系统保留端口占用可能是Windows的Hyper-V保留了端口范围这时改Redis端口反而更省事。在配置文件中把port 6379改成port 6380然后客户端连接时也使用6380通常就能绕开。7.3 双击redis-server.exe闪退的常见原因很多新手第一次运行Redis都是直接双击图标然后窗口一闪而过以为程序坏了。闪退的本质是Redis进程遇到了错误后立刻退出但这种错误信息在窗口关闭前根本看不清。正确做法是打开cmd通过命令行运行redis-server.exe这样错误信息会完整保留在窗口中。最常见的闪退原因有三个配置文件里写了无效参数、dir指向的目录不存在、6379端口被占用。还有一种情况是从网上下载到了不完整的安装包解压时文件缺失。遇到闪退不要盲目重装先把cmd里的报错信息复制出来搜索解决问题比重新下载更有效。7.4 Windows Defender或其他杀毒软件误杀进程Windows上的Redis移植版偶尔会被Windows Defender或其他杀毒软件判定为风险程序尤其是redis-server.exe这种监听端口、接受网络连接的可执行文件很容易触发安全策略。如果你启动后服务端马上退出且事件查看器里有杀毒软件的拦截记录就可以确认是误杀。解决方法是把这个Redis目录加入Windows Defender的排除项Windows安全中心 - 病毒和威胁防护 - 管理设置 - 排除项 - 添加排除项 - 选择D:\redis整个文件夹。加入排除项后重新启动Redis即可。这种方式只对你自己下载的、校验过来源的Redis程序有效如果是从不明渠道下载的Redis还是先杀毒再信任比较好。7.5 数据备份与恢复的实际操作我把Redis用于本地开发时通常会定期把Redis目录下的持久化文件备份到另一个磁盘。手动备份方式很简单先停掉Redis服务再把appendonly.aof和dump.rdb复制走。恢复时把备份文件放回dir指定目录启动Redis即可。还有一种更轻量的方式是利用Redis自身命令触发后台保存redis-cli -a yourStrongPassword123 save执行后Redis会立刻生成一份RDB快照。既然讲到这我顺手提一个细节使用Windows服务方式运行时不要频繁通过杀死进程来测试数据安全。Windows进程强制终止时AOF的最后一段日志可能没有完全落盘极端情况下会导致恢复后的数据不是最新的。正确的停机方式是用命令redis-cli -a yourStrongPassword123 shutdown这台机器验证下来Redis作为Windows本地开发服务配合上述配置已经可以稳定跑几个月不重启。版本号虽然停留在5.0但字符串、哈希、列表、集合、有序集合这些核心数据结构以及分布式锁、消息发布订阅等常用能力都完整覆盖用于学习和中小型项目测试没有明显短板。等哪天你想上生产环境再把同样一套数据模型平滑迁移到Linux上的Redis 7.x即可命令和配置基本是通用的。
返回列表