ARTICLE DETAIL

资讯详情

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

Windows 10 下 Redis 安装配置与开机自启动完整指南

Windows 10 下 Redis 安装配置与开机自启动完整指南 Windows 上用 Redis最容易被绕晕的就是版本和自启动这两件事。官方 Windows 版并不存在网上能下到的要么是微软当年的移植分支要么是第三方编译的 5.0.x 版本。很多新手下载完解压双击 redis-server.exe窗口一闪而过更别提开机自启了。这篇文章我就从实际安装出发把下载、配置、启动、注册服务、排查故障这些步骤原原本本讲清楚给正在 Windows 10 上折腾 Redis 的朋友一份完整可抄的方案。先说结论在 Windows 10 上装 Redis最推荐用原生移植版配合它自带的服务注册命令来做开机自启动。说起来简单但实际操作里藏着不少坑。我一个个拆开讲。1. 安装前的思路梳理为什么 Windows 下装 Redis 这么费劲1.1 Windows 版 Redis 的来历Redis 官方从没说过支持 Windows官网上连 Windows 安装包的入口都没有。你在 Windows 上能跑起来的 Redis底层都是靠着微软开源的 Windows 移植分支延续下来的。这个分支最早由微软的团队维护后来社区里的开发者接手目前大家用得比较多的版本是 tporadowski 维护的 5.0.x 系列。这个版本的发布页面在 GitHub 上提供 zip 压缩包和 msi 安装包装形式。zip 解压就能用不写注册表不污染系统我喜欢这种方式后面也按这个来讲。这里要给新手朋友一个提醒搜索“redis 下载”你会看到一大堆第三方站点有中文的也有英文的界面做得挺像那么回事但来源不明的东西里面被塞了什么谁也说不好。老老实实去 GitHub 仓库下载路径再笨也安全。1.2 三种主流安装方案对比在 Windows 上装 Redis其实一共有三条路方案优点缺点适合场景Windows 原生移植版操作简单一条命令启动性能尚可版本停留在 5.0.x部分新特性缺失本地开发调试、工具软件内置缓存WSL 2 里装官方 Redis与 Linux 环境一致能用到最新特性需要开启 WSL网络和文件路径配置繁琐需要模拟生产环境的开发者Docker 跑 Redis 容器环境隔离干净部署可复制需要额外安装 Docker Desktop资源占用高已习惯容器化开发的团队我个人判断很简单如果你只是想在 Windows 上写代码、调试逻辑本地留一个缓存服务选原生移植版最省事。要是你正在做 Redis 数据迁移或生产环境演练那建议用 WSL 或 Docker 模拟 Linux 运行环境避免“Windows 下没问题、上了 Linux 就翻车”的尴尬。2. 下载与环境准备这些坑提前避开2.1 下载 Windows 版 Redis打开 GitHub 上 tporadowski/redis 仓库的 releases 页面找最新一个 release下载 Redis-x64-xxx.zip。x64 基本覆盖当前所有主流 Windows 10 电脑不需要担心 32 位的问题。文件大小也就 20MB 出头下载很快。压缩包里大致是这样几个文件redis-server.exe服务端主程序redis-cli.exe命令行客户端redis.windows.conf默认配置文件redis.windows-service.conf以服务方式运行时的专用配置文件redis-benchmark.exe、redis-check-aof.exe 等辅助工具下载完先放到一个固定目录我习惯放在 C:\Redis 下。目录名别带中文、别带空格否则后面注册服务时 binPath 的引号处理会让你怀疑人生。2.2 解压与目录规划解压后把里面的文件全部放到 C:\Redis。这一步没有技术含量但容忍度很低。后面所有命令包括注册服务、修改配置、启动验证都会围绕这个目录展开。路径选择上我建议不要放 C:\Program Files 这种带空格的位置。Zip 版和普通软件不一样它没有安装过程也不写注册表。服务注册命令里的路径一旦带空格命令行解析就很容易出错虽然可以通过额外加引号处理但对新手不友好。老老实实用一个简单路径省下后面一堆麻烦。2.3 修改配置文件里的三个关键参数用文本编辑器打开 C:\Redis\redis.windows.conf重点看这几个参数requirepass 默认是被注释掉的。这一项是访问密码。本机测试可以不设但如果你在公司内网、电脑 IP 固定强烈建议设置。格式requirepass yourpassword设置后客户端连接需要带密码后面讲 redis-cli 的时候会说怎么操作。maxmemory 默认是注释状态也就意味着不限制内存。Windows 上跑 Redis内存不设上限的风险很大Redis 会一直占用物理内存搞到系统卡顿才罢休。建议按机器内存的四分之一到三分之一来设置例如maxmemory 512mbappendonly 默认是 no。这个参数控制 AOF 持久化。开发环境可以先不开但如果你在 Redis 里存了需要保留的数据建议改成appendonly yes开启后Redis 会把每个写操作追加到 appendonly.aof 文件里重启后数据恢复能力比默认的 RDB 快照更稳。配置文件修改完先保存。这一步有个隐性坑从 GitHub 下载的配置文件属性可能是“只读”如果保存时报错请右键文件 → 属性 → 取消勾选“只读”。3. 首次启动与验证确保 Redis 真的活着3.1 启动 Redis 服务器打开 PowerShell 或 CMD进入 Redis 目录cd C:\Redis redis-server.exe redis.windows.conf如果配置没问题终端会打印出 Redis 的 ASCII logo末尾出现这一行[xxxxx] Ready to accept connections看到这行说明 Redis 已经跑起来了。此时这个终端窗口是前台直接阻塞的不要关关了 Redis 就停。验证完可以 CtrlC 结束进程。3.2 用 redis-cli 验证连接新开一个终端窗口执行cd C:\Redis redis-cli.exe进入交互模式后输入 ping返回 PONG说明连接正常。再测试一下基本读写和密码set name zhangsan get name如果设置了 requirepass客户端需要先认证auth yourpassword不认证就执行 get会报错NOAUTH Authentication required.顺便说一句很多老教程里 ping 这一步是直接通过的因为他们没设密码。你设了密码后 ping 之前也要先 auth这点容易让人误以为 Redis 没启动成功。3.3 验证数据持久化按下 CtrlC 关闭 Redis再重新执行启动命令读取刚才写入的 name。如果你只依赖默认的 RDB 持久化Redis 退出时会自动保存一份 dump.rdb 到目录下。重启后数据还在说明 RDB 机制正常工作。这里我补充一个细节普通关闭用 CtrlC 或 shutdown 命令Redis 才会主动保存 RDB。如果你直接把终端窗口关掉能触发保存但概率不稳所以手动测试时别用右上角的叉去关窗口。4. 设置开机自启动三种方式任选手动启动 Redis 不是长久之计。每次开机都要打开终端敲命令久了必然忘记。Windows 10 下做开机自启我实测下来有三条稳定路径按推荐程度排序讲。4.1 方式一redis-server 自带的服务注册命令Windows 移植版自带了把自身注册为系统服务的参数这是最省事的方案。需要用管理员身份打开 PowerShell 或 CMD。进入目录后执行cd C:\Redis redis-server.exe --service-install redis.windows.conf --loglevel verbose执行结果会提示服务安装成功。接着启动服务redis-server.exe --service-start或者用 Windows 通用命令net start Redis注册完成后可以到“服务”管理器里查一下名字默认服务名就是 Redis。把启动类型设置为“自动”这一步在绝大多数情况下注册完就已经是自动了但建议手动确认一遍。常用维护命令也放在这里后面排查要用命令作用redis-server.exe --service-install redis.windows.conf注册服务redis-server.exe --service-start启动服务redis-server.exe --service-stop停止服务redis-server.exe --service-uninstall卸载服务需要特别注意的是注册服务时要指定配置文件。如果不指定服务启动时会去读默认配置你辛苦改的 requirepass 和 maxmemory 就全失效了。4.2 方式二sc 命令手动创建服务如果移植版自带的服务命令在你的机器上报错可以用 Windows 自带的 sc 命令创建服务。管理员权限打开命令行sc create Redis binPath \C:\Redis\redis-server.exe\ --service-run \C:\Redis\redis.windows.conf\ start auto注意 sc 命令的等号左侧没有空格等号右侧必须有一个空格。start auto里的空格很容易漏漏了就会报参数错误。创建成功后启动net start Redis这种方式相当于手动告诉 Windows这个 exe 可以作为服务运行redis-server 的--service-run参数就是服务运行模式。它和方式一的底层机制是一样的只是注册这一步由你亲自操作。4.3 方式三任务计划程序兜底某些特殊场景下服务方式可能不稳定比如杀毒软件拦截服务创建。这时可以用任务计划程序做开机启动。打开“任务计划程序” → “创建基本任务”名称填写 Redis触发器选择“计算机启动时”操作选择“启动程序”程序或脚本填 C:\Redis\redis-server.exe添加参数填 redis.windows.conf起始于填 C:\Redis把“使用最高权限运行”勾上完成创建后在任务列表里右键运行一次测试。任务计划程序的方式有一个特性它启动的 Redis 是在登录会话下运行的不是系统服务级别。如果你电脑不开机登录就期望 Redis 跑起来那还是得用前两种服务方式。4.4 三种方式对比维度自带 service 命令sc 命令任务计划程序配置复杂度低中中是否在用户未登录时启动是是否卸载方便程度一条命令搞定需要 sc delete删除任务适配杀毒软件环境一般一般更好我在实际项目中优先用第一种。如果公司电脑有安全策略限制服务注册就用第三种。sc 命令属于中间方案了解原理即可。5. 常见故障排查不重启也能定位的硬办法5.1 端口被占用导致启动失败Redis 默认端口是 6379。如果你曾经装过老版本 Redis或机器上有其他程序占用了这个端口服务启动就会失败。排查命令netstat -ano | findstr 6379找到占用端口的 PID在任务管理器里核对该 PID 对应哪个进程确认是多余的旧 Redis 或无关程序右键结束任务。或者直接修改配置里的 port 参数换成 6380 等不冲突的端口。5.2 服务启动后立即停止服务注册成功但启动后状态栏几秒内又变回“已停止”。这种情况通常是配置问题。去事件查看器 → Windows 日志 → 应用程序找 Redis 相关的错误记录最常见的错误是找不到配置文件。这种问题的核心原因只有一个服务启动时读的配置路径不对。解决办法是打开注册表找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redis查看 ImagePath 项确认里面--service-run后面的配置文件路径与实际路径一致。如果不一致直接改注册表或者干脆卸载服务重新用绝对路径注册。5.3 改了配置但重启不生效这是个很迷惑人的问题。你明明在 redis.windows.conf 里改了端口或密码服务重启后却依然用旧配置。原因多半是服务命令里根本没带配置文件参数redis-server 在服务模式下会尝试读同目录下的 redis.windows-service.conf而不是 redis.windows.conf。两个文件长得几乎一样但不通用。所以注册服务时我建议在命令行中显式指定配置文件这样最直观不会混淆。5.4 设置了密码后客户端连不上这个问题严格来说不算故障但咨询量特别大。设了 requirepass 之后Redis Desktop Manager 这类图形化连接工具会报错提示认证失败。处理思路分两步先确认配置文件里的 requirepass 没有被空格或注释干扰再用 redis-cli 验证redis-cli.exe -a yourpassword能进交互模式就说明服务端正常剩下就是客户端工具里的密码框填错了。注意 redis-cli 里-a参数会让密码出现在进程参数里本地测试无所谓但别在共享机器上这么干。5.5 32 位系统或内存限制问题如果你用的还是 32 位 Windows内存限制会成为一个坎。Redis 在 32 位系统下默认最大内存只有 3GB超过就会触发 OOM 错误。解决办法是换 64 位系统或者在配置里显式设置 maxmemory 到合适值。6. 安全加固与日常维护裸跑 Redis 的代价6.1 密码与访问控制本机开发环境可以稍微放松但只要是网络可达的环境强烈建议做三件事设置 requirepass 密码修改端口不用默认 6379配置 bind 参数只允许本机访问bind 默认是 127.0.0.1这其实是最安全的状态。如果你需要局域网里其他机器访问可以改成内网 IP但别改成 0.0.0.0那样所有网卡都能访问非常危险。6.2 日常检查哪些指标Redis 跑起来之后建议周期性地用 redis-cli 看一下几个指标info memory info stats重点关注 used_memory 是否接近 maxmemory以及 connected_clients 是否异常偏高。前者说明是否需要扩容或调淘汰策略后者可能意味着有异常连接。日志方面Windows 版 Redis 默认把日志打印到终端。注册成服务后日志输出会写到配置里 logfile 指向的文件。建议在配置文件里把 logfile 参数打开这样服务模式下出了问题也有迹可循。6.3 Windows 移植版的性能边界最后我还是要泼一盆冷水。Windows 原生移植版 Redis 能应付日常开发、小流量测试但它不具备生产环境的高性能与稳定性。官方推荐的部署平台永远是 Linux。这篇文章讲的方法目的是让你在本机快速把 Redis 环境跑起来、把自启动这步做扎实而不是劝你把公司核心缓存迁到 Windows 服务器上。真要上生产请老老实实在 Linux 上部署。最后分享一个小经验注册完服务后我习惯再改一次配置里的 logfile 和 dir把数据和日志都指到固定目录下比如 C:\Redis\data。这样将来想清数据、做备份直接对着这个目录操作就行了不用在多个位置间来回找。
返回列表