ARTICLE DETAIL

资讯详情

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

Win11安装Redis全攻略:版本选择、服务注册与常见坑

Win11安装Redis全攻略:版本选择、服务注册与常见坑 最近在Win11上折腾Redis安装本来以为不过是解压、双击启动、连一下端口结果前前后后遇到了好几个以前没注意过的细节包括版本选择、服务注册、防火墙拦截、配置路径带空格这类问题。这篇文章就把我在win11环境下安装Redis的完整过程、踩过的坑和解决方案一次性整理出来也给那些准备装Redis做本地开发、学习缓存或者搭测试环境的朋友一个可以直接照做的参考。无论你是完全没接触过Redis的纯新手还是以前在Linux上用过、想在Windows上快速跑一个实例这篇文章都应该能帮你少走弯路。1. 安装前先搞清楚Redis在Windows上到底靠不靠谱1.1 官方并没有提供Windows版这事很多人没注意到很多人在Windows上装Redis第一反应是去redis官网下载结果发现官网只有Linux版本Windows那边根本找不到下载按钮。原因是Redis官方从一开始就是为Linux环境设计的官方并没有维护Windows版本。早年微软自己做过一个Windows移植分支但后来也基本停止了维护。现在网上能搜到的“Redis Windows安装包”绝大多数来自第三方开源项目最常见的是tporadowski/redis基于Redis 5.0.14移植编译还有一部分是其他个人作者编译的7.x版本。这个情况直接决定了我们在win11上安装Redis时不能盲目下载最新版。如果只是本地开发、学习数据结构、写点缓存逻辑用维护最稳定的5.0.14移植版完全够用如果非要体验Redis 7.x里的ACL权限控制、Function、RESP3协议这些新特性我更建议直接用WSL2或者Docker跑Linux容器而不是去装那些来源不明的Windows包。先用最稳的版本把流程跑通后面需要新功能再切容器这是我这几年在Windows上装Redis总结出来的经验。1.2 版本对比到底选5.0.14还是7.x版本维护状态优点缺点适合场景Redis 5.0.14 Windows移植版稳定更新较慢安装简单资料多兼容win11没有7.x新特性本地开发、学习Redis基础Redis 7.x Windows移植版依赖个人维护版本参差不齐支持新特性稳定性不确定少人验证需要新特性又不想用DockerLinux/WSL2/Docker版本官方持续维护最稳定性能好特性全需要额外安装环境生产环境、深入学习、前后端联调我平时干活更倾向于“能用就行”所以在win11上我目前装的是5.0.14。别觉得老Redis的常用命令、数据结构、持久化思路在5.x和7.x上基本一致等你把基础命令、AOF、RDB、主从同步都玩熟了再切到Linux环境去用7.x成本很低。1.3 下载渠道和文件校验一个都不能省下载建议直接走GitHub Releases页面搜索tporadowski/redis打开最新的release下载zip包。下载后别急着解压先用PowerShell校验一下文件哈希。虽然GitHub相对可信但Windows平台向来是下载渠道劫持的高发区多一步校验不亏。PowerShell里执行Get-FileHash .\Redis-x64-5.0.14.zip -Algorithm SHA256把算出来的哈希值和GitHub上发布的哈希对照一下一致再解压。这一步看着多余真遇到问题能省很多事。另外Win11下载完zip后SmartScreen偶尔会弹“安全警告”这是因为非官方签名软件的通病只要文件来源明确、哈希无误点掉警告继续就行。不要为了图省事关掉系统安全中心那反而风险更大。2. Win11下手动安装Redis的完整步骤2.1 目录规划路径别带空格也别塞进Program Files把zip解压到指定目录我建议放到C:\Redis或者D:\Redis这种简单路径不要直接丢到C:\Program Files下。原因有两个一是Redis默认配置、服务注册对路径里的空格非常敏感虽然系统允许但后续写脚本、注册服务时会踩很多莫名其妙的坑二是Program Files目录权限要求高Redis服务运行时可能因为读写权限不足而失败。解压完成后目录下应该有这些核心文件redis-server.exeRedis服务端程序redis-cli.exeRedis命令行客户端redis.windows.conf普通启动用的配置文件redis.windows-service.conf注册Windows服务时用的配置文件建议先把redis.windows.conf复制一份重命名为redis.conf保留原始文件作为备份。后面所有修改都在新文件里做万一改坏了还可以把原文件重新复制回来。这是我从Linux上搞配置养成的习惯在Windows上同样适用。2.2 修改配置文件别只改端口就启动用VS Code或Notepad打开redis.conf用记事本也可以但要注意编码问题Windows记事本保存UTF-8时可能会加BOM头影响Redis解析配置。推荐直接用VS Code设置默认UTF-8保存。几个必须知道的配置项port默认6379如果本地端口被占用可以改成6379之外的端口比如6380但必须和服务端、客户端统一。bind默认是127.0.0.1意思是只允许本机访问本地开发时这个配置最安全。如果你想从局域网其他机器访问可以改为0.0.0.0但一旦改了就一定要配合密码否则你的Redis等于裸奔在网络上。protected-mode默认yes开启保护模式后如果没有设置密码且bind不是本机地址Redis会拒绝远程连接。本地调试不用管保持默认即可。maxmemory建议设置一个上限比如maxmemory 256mb防止某些程序异常写入把内存吃光。开发机上尤其需要不然一个死循环塞几GB数据电脑直接卡死。requirepass如果Redis要暴露到局域网一定要在这里设置密码比如requirepass mypassword123。我见过很多新手只改端口其他全保持默认然后局域网连不上各种怀疑人生其实就是bind和protected-mode在起作用。理解它们的逻辑比记住命令重要得多。2.3 启动Redis并验证是否真正跑起来打开PowerShell或CMD先切到Redis目录cd C:\Redis .\redis-server.exe redis.conf看到启动日志里有“Ready to accept connections”字样端口显示6379就说明服务起来了。注意当前这个PowerShell窗口会被占用不要关。新开一个PowerShell窗口验证一下cd C:\Redis .\redis-cli.exe -p 6379 ping如果返回PONG说明服务端正常。再用两个最简单的命令测试读写.\redis-cli.exe -p 6379 set name hello .\redis-cli.exe -p 6379 get name能返回hello整个安装流程就算成功了。到这里为止我们用的还是“前台启动”方式窗口关掉Redis就停适合临时测试。如果需要长期运行接下来要注册成Windows服务。2.4 把Redis注册为Windows服务开机自启的关键每次开机手动启动Redis太麻烦注册成Windows服务是最省心的方式。Redis自带的redis-server.exe本身支持服务命令不需要额外工具。以管理员身份打开PowerShell执行cd C:\Redis .\redis-server.exe --service-install redis.windows-service.conf --service-name RedisService这条命令会把Redis安装为名为RedisService的Windows服务使用的是redis.windows-service.conf配置文件这个文件专门为服务运行优化过里面已经处理了日志、工作目录等参数。注册成功后继续执行.\redis-server.exe --service-start --service-name RedisService启动后可以打开“服务”管理器WinR输入services.msc看到RedisService状态为“正在运行”。如果不想用命令也可以直接设置服务为自动启动右键服务属性启动类型选“自动”。需要卸载服务时用.\redis-server.exe --service-uninstall --service-name RedisService这里有个重要提示注册服务如果失败多半是因为路径问题或者权限不足确认一下当前PowerShell是不是管理员以及路径里没有中文和空格。3. 用客户端工具连接Redis比命令行更直观3.1 连接工具怎么选Redis Desktop Manager还是Another Redis Desktop Manager命令行用久了会累尤其看键值、查过期时间、删大量key的时候有个图形界面会高效很多。目前Windows上最常见的两个工具是Redis Desktop ManagerRDM和Another Redis Desktop ManagerARDM。RDM是老牌的Redis图形客户端早年有免费社区版后来部分功能收费社区版功能相对受限。ARDM是RDM的后续替代品开源、免费、跨平台界面类似功能上支持查看所有键、增删改查、命令终端、导入导出等基础操作。个人推荐用ARDM零成本不用登录下载即用。如果你已经有RDM也没必要换能用熟就行。工具只是手段关键是维护的Redis实例要稳定。从热词里也看到很多人在搜“redis desktop manager”和“another redis desktop manager”说明在Win11环境下的连接工具需求确实很普遍。选ARDM还有一个好处它更新比较积极对Win11的适配明显比老版RDM好遇到高分屏缩放、暗色模式这些问题更少。3.2 客户端连接参数Host、Port、Password一个都不能错打开ARDM新建连接填入Name自定义比如Local RedisHost127.0.0.1Port6379Password如果配置了requirepass就填没配就不填UsernameRedis 6.0以下默认不需要ACL才需要5.0留空点测试连接出现“Connected”就说明一切正常。如果连接失败依次排查服务是否真的在运行端口是否填对密码是否填对bind配置是否限制了连接来源Windows防火墙是否拦截了6379端口第五条最容易忽略。Win11对公网和专网的防火墙区分很严格本地连接用127.0.0.1通常不受影响但如果连接工具从虚拟机或者另一台电脑访问就必须在防火墙里放行6379端口。可以搜索“允许应用通过防火墙”添加redis-server.exe或者手动添加入站规则TCP 6379。3.3 用命令行快速验证和日常排查图形界面方便但命令行永远是排查问题的最后手段。连不上Redis时用redis-cli最能定位问题.\redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456如果密码里有特殊字符-a参数容易被命令行转义搞乱建议设置环境变量REDISCLI_AUTH这样不用在命令行里暴露密码$env:REDISCLI_AUTH123456 .\redis-cli.exe -h 127.0.0.1 -p 6379 ping进入命令行后用dbsize看当前实例有多少个keyinfo memory看内存占用info server看运行版本和启动时间。日常排查可以用keys *但注意这个命令在数据量大的时候会阻塞Redis生产环境千万不能用本地测试无所谓。需要定期清理过期key时用scan 0代替keys *体验会好很多。4. 安装和启动过程中的常见问题速查4.1 双击redis-server.exe闪退拿到压缩包后很多人第一反应是双击redis-server.exe结果窗口一闪就没了误以为安装失败。实际上这是在当前目录找不到配置文件导致的。Redis启动时会默认尝试加载redis.windows.conf或redis.conf如果工作目录不对就会因为配置缺失直接退出。解决方法就是不要用双击而是先在PowerShell里切换到Redis解压目录再执行带配置文件的启动命令。如果确实想双击可以创建一个快捷方式在“目标”里写成C:\Redis\redis-server.exe C:\Redis\redis.conf起始位置设为C:\Redis这样双击也能正常启动。闪退时最好在PowerShell里手动启动一次因为窗口关闭前会打印错误原因比如“Fatal error loading config file”一眼就能看到路径不对。4.2 Windows无法启动Redis服务错误1053注册服务后启动失败最常见的是错误1053服务没有及时响应启动请求。这个错误的根源通常是配置文件路径不对或者exe路径带了空格。Windows服务在启动时工作目录和当前用户手动执行不一样它不会自动切换到Redis目录所以--service-install后面跟的配置文件必须是绝对路径并且路径里不要有空格和中文。还有一个容易被忽略的点redis.windows-service.conf和普通配置文件不一样里面已经预设了某些参数。如果你想自定义配置最好同时修改服务配置文件不要改成手动启动时用的redis.conf。注册服务时的顺序是先卸载再重新安装然后启动可以避免配置残留.\redis-server.exe --service-uninstall --service-name RedisService .\redis-server.exe --service-install C:\Redis\redis.windows-service.conf --service-name RedisService .\redis-server.exe --service-start --service-name RedisService如果还是1053打开“事件查看器”-“Windows日志”-“应用程序”看Redis服务对应的错误记录里面通常会写具体是端口被占用还是配置文件解析失败。4.3 端口6379被占用启动Redis时报错“Address already in use”或者“bind: Unknown error”基本就是6379端口被其他程序占了。先查占用情况netstat -ano | findstr 6379找到占用进程的PID再通过任务管理器或者命令行看是哪个进程tasklist /fi PID eq 12345如果是自己以前启动的Redis残留进程直接用taskkill /PID 12345 /F干掉。如果是其他程序占用改Redis端口是最省事的方法。改端口时除了配置文件里的port还要同步修改客户端的连接端口以及防火墙规则。4.4 Win11的系统拦截和安全策略问题Win11对非官方软件的限制比Win10更严格主要体现在SmartScreen和应用控制策略。下载完成后右键zip选属性如果底部有“解除锁定”的复选框一定要勾选并点击确定再解压否则二进制文件运行时会提示“Windows已保护你的电脑”。还有一类情况比较隐蔽Win11“应用程序控制策略”已经阻止了此文件这个提示通常出现在企业版或开启了强制Smart App Control的机器上。解决方法是临时关闭“Smart App Control”或者右键exe文件选择属性在数字签名页签里查看是否被阻止然后按提示解除限制。本地开发机如果只是用来跑Redis可以关闭这个策略但如果你使用电脑比较频繁还是建议保留系统防护只对Redis目录做白名单。另外防火墙也要检查。连接工具远程访问Redis时如果提示超时或者连接被拒绝很可能是Windows防火墙拦截了入站TCP 6379。本地访问一般不触发但局域网访问必须放行。4.5 设置了requirepass之后连接不上很多人在配置里加了requirepass 123456然后继续用redis-cli -p 6379连接执行命令时出现NOAUTH Authentication required。这不是连接失败而是没有认证。解决方式有三种启动时附加-a 123456进入命令行后执行auth 123456设置环境变量REDISCLI_AUTH图形客户端同理启动连接时填上密码即可。如果密码配置错了想把密码去掉修改配置文件里的requirepass为空字符串或注释掉重启服务即可。我建议开发环境也设置密码一旦开发机被测试环境接入不至于裸奔。4.6 常见问题速查表现象可能原因解决办法双击redis-server.exe闪退工作目录不对找不到配置用PowerShell手动启动并指定conf路径服务启动失败1053路径含空格、配置文件错误用绝对路径重装服务检查事件查看器connect refusedRedis没启动/端口不对确认服务状态和端口NOAUTH报错配置了密码但没有认证用-a或auth命令远程连接超时bind/protected-mode/防火墙修改bind、配置密码、放行防火墙端口内存持续增长未设置maxmemory配置maxmemory和淘汰策略5. 进阶选择Win11里用WSL2或Docker跑Redis更接近真实环境5.1 为什么生产环境不建议用Windows原生版Windows原生版Redis适合本地学习和临时测试但真要部署服务或者做集群、主从同步、持久化高可用方案还是建议用Linux环境。原因很简单官方只维护Linux版本Windows移植版存在多个分支功能完整性和性能都不能保证。Win11本身提供WSL2可以在Windows上运行真正的Linux内核性能损耗很小这时候再跑Redis和真实生产环境几乎一致。WSL2的安装也比较简单管理员PowerShell执行wsl --install重启之后创建一个Ubuntu发行版然后在Ubuntu里用apt安装Redissudo apt update sudo apt install redis-server启动后Redis运行在WSL2内部Win11的客户端工具照样可以通过localhost:6379访问因为WSL2默认支持Windows访问Linux里的服务。5.2 Docker跑Redis适合快速搭建和清理如果你熟悉Docker在Win11上用Docker跑Redis是最快的。确认Win11开启了WSL2后安装Docker Desktop然后执行docker run --name redis -d -p 16379:6379 redis:7-alpine这样就把Redis 7跑在一个容器里宿主机的16379端口映射到容器的6379。用16379是为了避免和本机的原生Redis端口冲突。需要持久化和密码时可以加上docker run --name redis -d -p 16379:6379 -v redis-data:/data redis:7-alpine redis-server --appendonly yes --requirepass 123456热词里有人搜“docker安装redis主从”如果确实需要主从测试也可以在docker-compose.yml里启动两个Redis容器一个主一个从配置起来比Windows原生版方便很多关键是容器之间网络互通很干净。不过这是另一个话题这里先不展开安装阶段先把单机跑通再说。5.3 本地开发到底选哪种方式最合适我的个人建议很简单只是演示、学习Redis基本命令用Windows原生版2分钟搞定。要写Spring Boot/Node/Python项目并且希望本地环境和Linux线上环境一致用Docker容器。要深入学Redis内部机制比如主从、哨兵、集群直接用Docker Compose或者WSL2里跑多实例。这三种方式在win11下我都试过。最稳妥的组合是Windows原生版保留一个作为日常快速验证Docker里再跑一个正式开发用的Redis实例。两者不要同时占用同一端口用不同端口区分各干各的基本不会打架。最后再分享一个实用小技巧安装好Redis后把C:\Redis加到系统环境变量PATH里以后不管在哪个目录打开PowerShell都可以直接运行redis-cli、redis-server不用每次cd到Redis目录。配置环境变量后记得新开终端窗口才能生效老窗口读不到变更。这个细节虽然小但每天节省的时间积少成多。win11下装Redis真的不难只要把版本选对、配置理顺、服务注册清楚后面用起来会非常顺畅。
返回列表