资讯动态

Windows下Redis安装配置全攻略:下载、服务注册与避坑指南

发布时间:2026/10/14 22:29:20 来源:尧图企业网站定制
最近总有人问我Redis在Windows上到底怎么下载、怎么安装。问的人多了我意识到这个问题比想象中复杂因为官方发行的Redis老老实实是为Linux准备的Windows用户要么找移植版要么靠容器要么自己编译。今天我把整个流程拆开讲从下载源确认、版本选择到配置文件修改、注册成Windows服务再到我踩过的坑全部整理出来。这套流程适合新手也适合需要在内网环境里快速装一个开发环境的开发者。我用的方法都是在真实环境验证过的照着操作基本不会卡。1. 为什么Windows版Redis安装会有这么多讲究1.1 官方版本并不原生支持Windows这是根源很多人第一次下载Redis的时候跑到官网去点“Download”结果发现下载页面全是Linux相关的源码包根本找不到一个写着“Windows版”的安装文件。这不是你眼花了而是Redis官方确实不发布Windows二进制。Redis的核心代码是纯C实现的它依赖了很多POSIX标准下的系统能力比如fork()子进程做持久化、通过信号机制处理后台任务、使用unix socket做本地通信。这些特性在Linux和macOS上都有非常成熟的实现但Windows的进程模型、线程模型、文件句柄语义都不太一样直接拿源码用Visual Studio编译会碰到一堆兼容性问题。过去确实有非官方分支维护过Windows移植版但官方一直没有把Windows当成一等公民来支持所以你在官方渠道永远找不到真正的原生Windows安装包。这个“不支持”带来了一个很实际的后果市面上你搜到的“Windows版Redis”来源五花八门有的是社区维护的移植版有的来自某个软件管家有的是某个开发框架内置的Redis工具甚至还有一些是打着Redis招牌的模仿产品。如果闭着眼睛随便下一个最后卡在启动闪退、服务无法注册、数据无法持久化这些问题上一点都不奇怪。1.2 三个主流方案官方源码自编译、非官方移植版、WSL与Docker既然官方没有Windows包那想在Windows环境用Redis常见的有三条路。第一条路是拿官方源码自己编译。官方源码包里有一个专门的Windows分支可以借助一些跨平台构建工具在Windows环境下编译但整个过程比较折腾环境准备、依赖库安装、编译选项调整新手容易在中间找不到北。优点是能跟上游版本保持同步适合有编译经验、对Redis版本有特殊要求的人。第二条路是使用社区维护的“Windows移植版”这也是最多人采用、也最推荐新手的方式。社区把Redis源码重新改造让它可以跑在Windows上并编译好现成的zip压缩包。你下载下来解压改一下配置文件跑一下启动命令Redis就能工作。缺点是这个移植版的版本更新通常比官方慢几步比如官方已经发布7.x社区包还停在6.x或者更早但对绝大多数开发场景和中小型内部工具来说够用。第三条路是绕开原生安装用WSL跑Linux环境或者用Docker起一个Redis容器。这是很多资深开发者的选择因为能最大程度保持和Linux生产环境一致组件升级、配置迁移都很方便。但前提是你的机器开启并装了WSL或者Docker还要接受多一层的资源开销。这三条路怎么选取决于你的实际场景。如果你是给某个项目搭一个本地缓存、消息队列或者临时做个演示那就用移植版最快最省事。如果你需要和团队共享同一个生产环境的Redis配置而且本机已经有Docker或WSL那建议直接上容器。如果你对性能有洁癖想长期维护一个自编译版本也可以去啃编译流程。下面我按最实用的移植版方案展开讲。2. 开工前要搞懂的版本与配置细节2.1 版本怎么选稳定版、移植版、容器版怎么取舍我见过不少同事一上来就找最新版其实在Windows移植版这里“最新”不一定等于“好用”。先说官方稳定版。官方7.x已经是很成熟的大版本数据结构、持久化机制、主从复制、集群能力都很完善但官方没有Windows包所以如果你只想在Windows上原生安装那官方稳定版反而是拿不到手的东西。既然拿不到那就别纠结它。再说移植版。社区维护的Windows版本通常把版本号做得和官方对应比如某个安装包里标注了Redis 6.0.x意思是功能参考官方6.0版本进行移植。选的时候优先选最近半年内还有提交、有较多人使用的版本一般release页面会显示下载量和更新时间。别下那种挂在网盘上三年没动静的包大概率是老版本可能存在安全漏洞也可能和Windows 10/11的新特性不兼容。最后说容器版。如果你选择Docker那用的是官方镜像版本跟着官方走这个没有版本滞后的烦恼。但镜像目录、数据卷挂载、配置文件映射这些需要额外配置新手容易兜圈子。我的建议是第一次尝试就用移植版别把安装容器环境的时间算进来不然很容易把“装Redis”这件事搞成“装Docker”。2.2 下载文件长什么样目录结构和新增内容把一个Windows移植版zip包下载下来并解压后你会发现里面没有安装向导没有exe安装程序只有一个文件夹里面散落着几个可执行文件、配置文件、文档和依赖库。典型的结构长这样D:\Redis ├── redis-benchmark.exe ├── redis-check-aof.exe ├── redis-check-rdb.exe ├── redis-cli.exe ├── redis-server.exe ├── redis.windows.conf ├── redis.windows-service.conf ├── sentinel.conf └── ...其他说明文件这类“绿色免安装”结构其实很方便因为它不做系统级的安装动作不会污染注册表升级的时候直接替换整个文件夹就行。redis-benchmark.exe是压测工具redis-cli.exe是命令行客户端redis-server.exe就是服务器本体两个conf文件则是配置模板。很多教程讲到配置文件时只让你改redis.windows.conf忽略了redis.windows-service.conf的存在其实后者是在注册Windows服务时会被加载的配置。如果你只改了前者服务启动那边依然用旧配置这一行字不说清楚后面会坑很多人。2.3 配置文件里最先要改的三个参数刚开始用Redis的时候我不建议一次性把配置文件全看一遍那太劝退了。你只需要抓住三个最关键的参数就能把服务正常跑起来然后边用边学。第一个是绑定地址bind。默认配置里往往写着127.0.0.1意思是只允许本机访问。这个设置很安全如果你只想在本地开发用保持默认就好。如果你需要局域网里的其他机器连进来可以改成0.0.0.0或者把指定IP加进去比如bind 127.0.0.1 192.168.1.100。要特别注意别直接绑到0.0.0.0又忘记设密码那就相当于把所有数据裸奔在局域网里。第二个是端口号port默认是6379。这个端口在绝大多数机器上是空闲的但如果之前装过旧版本Redis或者其他应用占用了6379服务就起不来。你可以改成6380、6381这类不冲突的端口。改完端口后后面所有客户端连接、命令行参数都要跟着改不然就会连不上。第三个是密码requirepass。默认情况下这一行是注释掉的表示不需要密码。本地开发无所谓但只要你的Redis监听地址不是127.0.0.1我就强烈建议至少设一个简单的密码。比如requirepass 你的密码设置密码之后redis-cli启动连接必须携带密码这一步能挡掉大部分乱扫端口的脚本。顺便说一句Windows移植版的配置文件里可能会有中文注释有些编辑器打开后会乱码。如果遇到乱码不要慌改成UTF-8编码保存即可或者干脆不要在注释上花时间。3. 一步步完成Redis下载安装与基本配置3.1 下载并解压到本地目录接下来进入实操。先说怎么找下载源。去Redis官方源码站点的release页面是找不到Windows包的所以你要找的是社区维护的Windows移植版。搜索时尽量用“Redis Windows 版本下载”这类关键词认准提供zip包的社区仓库页面。看到下载文件之后建议优先选择标注了最新版本号的zip包不要选源码包更不要选src源码zip因为你没有编译环境直接拿源码是跑不起来的。下载完成后把zip包解压到一个路径中不要带空格的目录比如D:\Redis。为什么强调路径不要带空格因为后面注册Windows服务、写脚本启动时空格会产生非常多的引号问题你会花时间在处理路径上。如果解压目录已经带了空格比如D:\My Redis那也没关系后面所有命令手动加双引号也能跑但新手最好从一开始避开。解压完成后双击运行redis-server.exe试一下屏幕上如果出现了一大段Redis启动日志并且最后有一行类似“Redis is running”的提示说明基础环境没问题。如果窗口一闪而过八成是缺少某些运行库或者配置有误可以先留意一下后面会讲排查方法。3.2 修改redis.windows.conf文件完成基础配置进入D:\Redis目录里找到redis.windows.conf用任意文本编辑器打开重点看几个地方。打开文件后先搜索requirepass把前面的注释符号去掉改成你自己的密码。再确认port 6379是否满足需求确认bind 127.0.0.1是否要修改。最后检查maxmemory这一项Windows移植版默认可能不限制内存如果你的机器内存不大建议加上一条maxmemory 512mb这句的意思是限制Redis最多使用512MB内存超过这个上限后再写入数据会触发内存淘汰策略。不设这句一旦业务庞大或者有慢查询累积进程可能会把物理内存吃完最后整台机器卡死。虽然大多数开发机内存在16GB以上但养成限容的习惯对你的长期开发体验有好处。保存文件的时候注意编码格式。我遇到过这样的情况配置写好了保存成带BOM的UTF-8格式结果Redis启动时不识别配置文件里的BOM头直接报错。所以保存时优先选UTF-8无BOM格式或者ANSI编码。如果你用系统自带的记事本保存后可能出现UTF-8 BOM那就换个编辑器或者另存为其他编码。3.3 启动、连接与基本功能自检配置改好后打开命令提示符切到Redis目录执行启动命令。推荐用下面这种写法cd /d D:\Redis redis-server.exe redis.windows.conf这里不建议直接双击redis-server.exe因为双击会使用默认配置你改的requirepass和maxmemory全都不会生效。一定要在命令行里把配置文件路径传进去Redis才会按照你的设定运行。启动成功后新开一个命令提示符窗口测试连接cd /d D:\Redis redis-cli.exe -h 127.0.0.1 -p 6379 -a 你的密码这时候会出现一个交互提示符输入ping如果返回PONG说明服务正常。再输入set mykey hello get mykey能看到返回hello说明读写正常。这个自检过程非常关键很多人以为启动日志打印出来就算装好了实际上要等到你真正读写一次数据才能确认客户端和服务端的连通性都没问题。如果Redis不在前台运行而是想在关掉命令行窗口后继续待在后台可以把配置文件里的daemonize设置为yes。但Windows移植版里有个细节daemonize在Windows上有时不是所有版本都支持得很好更靠谱的方式还是用Windows服务托管下面讲。3.4 注册为Windows服务实现开机自启和后台运行每次手动打开命令行窗口启动Redis挺烦的尤其是重启电脑之后Redis就彻底消失了。更规范的做法是把Redis注册成一个Windows服务让系统帮你在开机时就把它拉起来。我用的注册命令是cd /d D:\Redis redis-server.exe --service-install redis.windows-service.conf --service-name RedisServer这条命令的意思是用redis.windows-service.conf这个配置去创建一个名为RedisServer的Windows服务。注册完可以到服务的图形界面里看到它也可以命令行查看sc query RedisServer看到状态是STOPPED就可以启动它redis-server.exe --service-start --service-name RedisServer或者用系统命令net start RedisServer启动之后再去redis-cli里做一次读写测试确认服务模式和刚才前台启动模式都正常。开机自启不需要额外配置服务创建后默认是自启类型只要没被手动改成禁用就行。如果你想卸载服务执行redis-server.exe --service-uninstall --service-name RedisServer注意执行卸载前先停服务否则可能会提示服务正在运行卸载不干净。我见过有人直接删Redis文件夹结果服务项还在系统里开机就报错非常别扭。4. 实操中我最常遇到的四个问题排查记录4.1 双击启动一闪而过到底是被谁拦下来新手最容易撞见的情况双击redis-server.exe后黑框一闪就消失感觉像没装上。这个现象通常是两种原因。第一种是缺少运行库或依赖项。Windows移植版使用了一些较新的C运行时如果你的Windows没有更新对应补丁进程会在初始化阶段退出。解决办法是先去系统更新把一些常见的运行库补丁打好或者装上“通用C运行时”组件。装好后重新运行一般就能看到正常日志。第二种是配置文件的路径不对。比如你在某个目录下双击exe但它在当前目录找不到配置项会尝试用默认配置启动默认配置又刚好有问题比如内存分配失败、端口被占用进程就会自己退出。遇到这种情况不要双击改用命令行方式前台启动redis-server.exe redis.windows.conf前台无法启动时错误信息不会一闪而过会直接停在屏幕上你就能读懂到底报了什么。这一步是排查问题的核心思路永远先让错误暴露出来再谈解决。4.2 端口6379被占用怎么快速定位和解决我有一台机器第一次装Redis就报“bind: Address already in use”排查半天发现不是Redis的问题而是某个监控软件偷偷占用了6379端口。定位占用端口的命令是netstat -ano | findstr 6379如果输出显示一行带有LISTENING状态和进程PID那就是有程序占用了6379。接着用tasklist | findstr 2200这里2200换成上一步看到的实际PID就能看到是哪个进程。如果是无关进程可以在任务管理器里结束后重新尝试如果是确实要保留的程序那就改Redis端口。改端口的操作很简单在redis.windows.conf里把port改成6380然后重新启动Redis。别忘记客户端这边也要改成-p 6380。我建议新手遇到端口占用不要强行杀掉系统进程优先改Redis端口最省事。4.3 修改密码和绑定后连不上问题出在哪设了密码后很多人直接运行redis-cli.exe进入交互模式然后执行get命令发现被拒绝。这不是Redis没启动而是客户端没有带密码身份验证。命令行下有两种办法。一种是在启动时带-a参数redis-cli.exe -h 127.0.0.1 -p 6379 -a 你的密码另一种是进入交互模式后先执行auth命令auth 你的密码如果你改了bind 127.0.0.1为局域网的IP还要确认防火墙规则是否放行6379端口。Windows防火墙默认会拦截外部对端口的访问即使Redis绑定在0.0.0.0上别的机器还是连不进来。这时候去防火墙设置里放行TCP的6379端口或者用命令行添加规则。记住了这不叫“关防火墙”而是有选择地放行必要端口不然Redis暴露出去比端口占用危险得多。绑定和密码两个参数要配合使用。只设置密码但还绑定127.0.0.1那局域网的机器仍然连不上只绑定局域网IP却不设密码那相当于把Redis晾在网络里稍有不慎就会被扫描工具盯上。我自己的推荐顺序是先确认要提供服务的内网网段然后设置密码再绑定IP最后放行防火墙。4.4 服务启动失败日志里说了一大堆该怎么判断注册成Windows服务后最常见的错误是启动服务时提示“服务没有及时响应启动控制请求”到事件查看器里一看Redis的日志有一些启动自检信息但没到正常运行状态。这种情况要先确认你是不是用了redis.windows-service.conf而不是redis.windows.conf。服务模式下Redis会执行一些和前后台模式不太一样的逻辑如果加载的配置带有daemonize yes这类不太兼容的设定就可能卡住。最简单的做法是把redis.windows-service.conf打开重点检查port、logfile和loglevel这几项。有些版本里默认把logfile设成了一个不存在的路径服务启动时写日志失败也会导致启动失败。把logfile 留空日志输出到控制台或者指定一个确定存在的路径比如logfile D:/Redis/redis_6379.log保存后重启服务。如果还失败就去事件查看器的“应用程序”日志里找Redis相关的红字错误通常能定位到具体哪个路径不存在、哪个参数不合法。我习惯在排查这类问题时先把服务卸载再用前台模式启动一次这样能立刻看到报错内容。前台模式下能正常跑就说明服务调用的配置有偏差前台模式本身也跑不了那就是配置本身的问题和服务机制无关。两步就能把问题缩小一半。5. 进阶用法与日常维护补充5.1 用命令行工具检查内存和命中率Redis装好不是万事大吉日常维护还需要几个命令。进入redis-cli后执行info memory可以看内存使用情况其中used_memory_human那一行会直接显示类似45.62M的数值结合你设置的maxmemory判断有没有压力。另一个值得看的是keyspace_hits和keyspace_misses两者相除能算出缓存命中率。命中率偏低通常意味着频繁访问的数据没有被缓存或者淘汰策略太激进。如果现场没带redis-cli可以直接用redis-benchmark跑一轮简单的压测看看这台机器的Redis能扛多少并发读写。虽然Windows移植版的性能指标和Linux生产环境没法比但至少能让你直观感受到本地开发环境的上限避免业务上线后依赖这个环境扛流量。5.2 数据持久化备份与恢复Redis默认在Windows移植版里也是开了RDB持久化机制的数据会按策略保存到磁盘上的dump.rdb文件。手动触发保存可以直接在客户端执行save这个命令会同步生成一份最新快照。如果数据特别大执行时会短暂阻塞这时可以用bgsave它会在后台生成快照避免阻塞正常读写。RDB文件的位置通常是在Redis工作目录下可以在配置里查找dir参数指定。恢复数据也不复杂把之前的dump.rdb放到现在的Redis工作目录里启动Redis时会自动加载。要注意的是Redis启动时如果发现RDB文件损坏能跳过部分数据但日志会有告警。遇到这种情况不要急着覆盖原文件先把损坏文件复制一份出来再用《redis-check-rdb.exe》工具检测一下看看到底是损坏还是文件格式不匹配。5.3 我踩过一次的坑忘记保存RDB导致丢数据这一节完全来自我的真实经历。有一次我本地起了Redis存了一批临时配置折腾了一下午没关后来重启电脑后再打开Redis发现之前set进去的key全没了。我第一反应是“Windows移植版不稳定”后来仔细一看原来是配置文件里save参数被注释掉了Redis默认没把任何数据刷到磁盘上。重启之后内存里的数据自然就清了。从那以后我每次装完Redis都会特意看一眼新版配置里的持久化策略。就算只是本地开发也至少留一条底线的save规则比如save 900 1 save 300 10 save 60 10000这几条的意思分别是900秒内至少1次写入就做快照300秒内至少10次写入就做快照60秒内至少1万次写入就做快照。有了这些规则即使没手动执行saveRedis也会在满足条件时自动落盘。突发断电时最坏情况也不过丢几秒数据而不是丢一整天。另外我自己习惯在装完Redis后把修改过的配置文件单独复制一份取名叫redis.local.conf这样下次升级Redis版本时可以直接对照旧配置迁移不用在默认配置里慢慢翻。6. 关于安全与习惯的一点补充这个部分是我额外想加的因为Windows上跑Redis有一个常见的迷思就是“反正只是开发环境不设密码没关系”。我现实中见过有人把Redis绑定到0.0.0.0密码留空结果某个项目的缓存数据被人用一条flushall命令清空还顺带挖了矿。Windows杀毒软件有时候还会把Redis进程误报为挖矿木马因为它的进程名比较大众CPU占用高的时候就容易被误判。所以我建议每一个在Windows上装Redis的人都养成三个习惯。第一不管是什么环境只要端口对局域网开放就必须设密码。第二定期备份RDB文件至少每天一次。第三不要用管理员权限裸跑Redis可以用普通用户运行避免被入侵后直接拿到系统级权限。这些听起来老生常谈但都是踩过坑的人才会写出来的经验。最后再分享一个我自己在日常操作中的小做法。每次装完Redis我都会给那份redis.windows-service.conf建一个快捷方式顺便把常用的命令行整理成一个.bat脚本放在桌面上。里面就三行一行启动服务、一行停止服务、一行打开redis-cli。这样省去了每次敲一堆长命令的时间也降低了好不容易装好Redis却因为懒得维护而搁置的几率。Windows版Redis虽然不像Linux环境那样是官方一手包办但只要把版本选对、配置理顺、服务注册好开发时完全够用。它的轻量、免安装、随用随走特性反而成了本地调试环境里的一个优点。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑