Redis(02)Win系统如何将Redis配置为开机自启的服务
一、引言
Redis 是一款高性能的键值对存储数据库,在众多项目中被广泛应用。在 Windows 环境下,为了让 Redis 能更稳定、便捷地运行,将其设置为系统服务并实现自动启动是很有必要的。这样一来,系统开机时 Redis 可自动加载,无需手动启动,能有效提升工作效率,尤其适用于开发环境和生产环境中对 Redis 持续运行有需求的场景。本文将详细介绍在 Windows 系统下把 Redis 设置为系统服务自动启动的完整流程。
二、前期准备
(一)下载 Redis 安装包
前往 Redis 官方网站(Downloads - Redis),找到 Windows 版本的 Redis 安装包进行下载。也可以通过一些可靠的软件下载平台获取,但建议优先选择官方渠道,以保证安装包的完整性和安全性。下载完成后,将安装包解压到一个合适的目录,比如 D:\Redis
,后续操作将基于此目录展开。
(二)检查系统环境
确保你的 Windows 系统具备正常的命令执行环境,能以管理员身份运行命令提示符(CMD)或 PowerShell。因为涉及到系统服务的安装、配置等操作,普通用户权限可能无法完成,所以管理员权限是必需的。同时,检查系统的网络配置等,虽然这一步不影响 Redis 服务的基础安装,但如果后续要通过网络访问 Redis ,确保网络环境正常很重要。
三、Redis 服务安装与配置步骤
(一)以管理员身份运行命令行工具
按下 Win + R
组合键,打开 “运行” 对话框,输入 cmd
,然后按住 Ctrl + Shift + Enter
组合键,以管理员身份启动命令提示符。这样可以避免因权限不足导致的操作失败。在命令提示符窗口中,你会看到路径显示为 C:\Windows\System32>
,表示已进入管理员权限的命令执行环境。
(二)切换到 Redis 安装目录
使用 cd
命令切换到你解压 Redis 安装包所在的目录。例如,若 Redis 解压到 D:\Redis
,则在命令提示符中输入:
cd /d D:\Redis
这里使用 /d
参数是为了同时切换驱动器和目录,确保能正确定位到 Redis 安装目录。执行完该命令后,命令提示符的路径会变为 D:\Redis>
,表示已成功切换到 Redis 所在目录。
(三)注册 Redis 为系统服务
在 Redis 安装目录下,执行以下命令将 Redis 注册为系统服务:
plaintext
redis-server --service-install redis.windows.conf --loglevel verbose
--service-install
选项用于告诉 Redis 服务器要进行系统服务的安装操作。redis.windows.conf
是 Redis 在 Windows 系统下的配置文件,Redis 会根据该文件中的配置来运行服务,比如端口设置、持久化策略等。如果你的配置文件名称不同,需要替换为实际的配置文件名。--loglevel verbose
用于设置日志级别为详细模式,这样在服务安装和运行过程中,能生成更丰富的日志信息,方便排查可能出现的问题。
如果注册成功,命令提示符会返回类似 Redis service successfully installed.
的提示信息。但如果出现报错,比如 Invalid argument during startup: Failed to open the.conf file
,通常是因为路径问题,要检查配置文件是否存在于当前目录,以及目录路径中是否有特殊字符(如中文、空格等),尽量将 Redis 安装目录设置为纯英文路径,避免因系统对特殊字符处理不当导致的问题。
(四)配置服务自动启动
1. 通过命令行配置
服务注册成功后,默认情况下服务的启动类型可能不是自动的。可以通过 sc
命令来设置 Redis 服务为自动启动,在命令提示符中输入:
plaintext
sc config Redis start= auto
这里 sc
是 Windows 系统中用于与服务控制器交互的命令,config
子命令用于修改服务的配置,Redis
是服务名称(如果注册时自定义了服务名称,要替换为实际名称),start= auto
表示将启动类型设置为自动。执行该命令后,如果成功,会返回 [SC] ChangeServiceConfig SUCCESS
的提示。
2. 通过服务管理器配置
除了命令行方式,也可以通过 Windows 服务管理器来设置。按下 Win + R
,输入 services.msc
,回车打开服务管理器。在服务列表中找到 Redis
服务(如果服务名称不是默认的 Redis
,根据实际注册名称查找),右键点击该服务,选择 “属性”。在 “属性” 对话框中,找到 “启动类型” 下拉框,选择 “自动”,然后点击 “确定”。这种方式更直观,适合对命令行操作不太熟悉的用户。
(五)启动 Redis 服务
1. 命令行启动
在命令提示符中,执行以下命令启动 Redis 服务:
redis-server --service-start
如果启动成功,会返回类似 Redis service successfully started.
的提示信息。如果启动失败,可查看详细的错误日志,根据日志中的提示排查问题,比如端口被占用、配置文件错误等。
2. 服务管理器启动
同样在服务管理器中,找到 Redis
服务,右键点击,选择 “启动”。服务启动后,状态会显示为 “正在运行” 。
四、常见问题及解决方案
(一)配置文件无法找到问题
在执行服务注册命令时,若出现 Failed to open the.conf file
报错,首先检查 redis.windows.conf
文件是否确实存在于当前 Redis 安装目录。如果文件存在,确认文件路径中是否有特殊字符,像中文、空格等,Windows 系统在处理含特殊字符路径时可能会出现问题。解决方法是将 Redis 安装目录移动到纯英文路径下,比如 D:\Redis
,然后重新执行服务注册命令。
(二)服务启动失败问题
服务启动失败可能有多种原因:
- 端口被占用:Redis 默认使用 6379 端口,如果该端口被其他程序占用,Redis 服务就无法正常启动。可以通过
netstat -ano | findstr "6379"
命令查看端口占用情况,找到占用端口的进程 PID ,然后在任务管理器中结束对应的进程,或者修改 Redis 配置文件(redis.windows.conf
)中的port
配置项,将端口改为其他未被占用的端口,再重启服务。 - 配置文件错误:如果配置文件中存在语法错误或无效配置,也会导致服务启动失败。可以仔细检查配置文件,参考 Redis 官方文档对配置项的说明,修正错误配置。同时,利用注册服务时设置的
--loglevel verbose
日志级别,查看详细的错误日志信息,根据日志提示定位和解决问题。
(三)权限不足问题
在执行服务相关操作(如注册、启动、配置等)时,如果没有以管理员身份运行命令提示符,可能会出现权限不足的报错,比如 [SC] OpenService 失败 5: 拒绝访问
。解决方法就是始终以管理员身份启动命令提示符,重新执行相关操作。
五、验证 Redis 服务自动启动配置
(一)重启系统验证
完成上述配置后,重启 Windows 系统。系统重启完成后,再次打开服务管理器,查看 Redis
服务的状态是否为 “正在运行” 。如果服务状态正常,说明自动启动配置成功。也可以通过命令行方式,执行 sc query Redis
命令,查看服务的状态信息,确认服务已自动启动。
(二)连接 Redis 测试
使用 Redis 客户端工具(如 redis-cli
)连接 Redis 服务,测试是否能正常进行数据操作。在命令提示符中,切换到 Redis 安装目录,执行 redis-cli.exe
(如果已配置环境变量,可直接在任意目录执行 redis-cli
),然后输入 ping
命令,如果返回 PONG
,说明 Redis 服务运行正常,能正常响应客户端请求。还可以进行简单的键值对设置和获取操作,比如 set test_key "Hello, Redis"
,然后 get test_key
,查看是否能正确设置和获取值,进一步验证 Redis 服务的功能。
六、Redis 服务的其他管理操作
(一)停止 Redis 服务
1. 命令行方式
在命令提示符中,执行 redis-server --service-stop
命令,可停止 Redis 服务。执行后,服务会逐渐停止运行,命令提示符会返回服务停止成功的提示(如果失败,同样可查看日志排查问题 )。
2. 服务管理器方式
在服务管理器中找到 Redis
服务,右键点击,选择 “停止” ,服务状态会变为 “已停止” 。
(二)删除 Redis 服务
如果不再需要 Redis 作为系统服务运行,可以将其删除。首先确保 Redis 服务已停止,然后在命令提示符中执行 redis-server --service-uninstall
命令,即可删除 Redis 系统服务。删除后,在服务管理器中就找不到 Redis
服务相关条目了。如果后续还需要使用 Redis 服务,需要重新执行注册服务等操作。
相关文章:
Redis(02)Win系统如何将Redis配置为开机自启的服务
一、引言 Redis 是一款高性能的键值对存储数据库,在众多项目中被广泛应用。在 Windows 环境下,为了让 Redis 能更稳定、便捷地运行,将其设置为系统服务并实现自动启动是很有必要的。这样一来,系统开机时 Redis 可自动加载…...

C++课设:高效的日程管理系统
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、C日程管理系统的时代价值1. 为什么选…...

功能测试、性能测试、安全测试详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、功能测试 1、单接口功能 手工测试中的单个业务模块,一般对应一个接口 例如: 登录业务------登录接口 加入购物车业务------加入购…...

提示词指南 --- 提示词的基本结构
提示词指南 --- 提示词的基本结构以及三种角色 什么是Prompt (提示词)Prompt的基本结构和三种角色提示词的三种核心“角色”(Role) 真实例子 什么是Prompt (提示词) 我们可以把“Prompt(提示词)”想象成和AI聊天时你说的“一句话…...
UI学习—cell的复用和自定义cell
前言 Nib是什么? Nib就是.xib文件:一个可视化的UI界面文件,它记录了一个UI组件(例如一个表格单元格Cell)的界面布局信息,可以在interfaceBuilder中创建 [UINib nibWithNibName:"CustomCell" b…...

20250605使用boot-repair来恢复WIN10和ubuntu22.04.6双系统的启动
rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair rootrootrootroot-X99-Turbo:~$ sudo add-apt-repository ppa:yannubuntu/boot-repair rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair 20250605使用boot-repair来恢复WIN10和ubuntu22.04.6…...
网络安全面试题目(无答案)
一、渗透测试与漏洞挖掘 如何绕过WAF进行SQL注入?列举三种技术并解释原理。 答案要点: 分块传输编码(Chunked Transfer)绕过正则检测 畸形HTTP参数(如参数污染、Unicode编码) 利用WAF规则盲区(…...
JavaScript性能优化实战
### 1. 减少全局变量 JavaScript里,全局变量就像一个大杂烩,啥都往里扔,很容易出问题,还会影响性能。为啥呢?因为全局变量会被所有函数共享,查找起来特别费劲,就像在一个大仓库里找东西…...

接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测
1 、 API 分类特征 SOAP - WSDL OpenApi - Swagger RESTful - /v1/api/ 2 、 API 常见漏洞 OWASP API Security TOP 10 2023 3 、 API 检测流程 接口发现,遵循分类,依赖语言, V1/V2 多版本等 Method :请求方法 攻击方…...

视频汇聚平台EasyCVR“明厨亮灶”方案筑牢旅游景区餐饮安全品质防线
一、背景分析 1)政策监管刚性需求:国家食品安全战略及 2024年《关于深化智慧城市发展的指导意见》要求构建智慧餐饮场景,推动数字化监管。多地将“AI明厨亮灶”纳入十四五规划考核,要求餐饮单位操作可视化并具备风险预警能力…...
sql server如何创建表导入excel的数据
在 SQL Server 中,可以通过几种方式将 Excel 数据导入到数据库表中。下面是一个完整的流程,包括如何创建表,以及将 Excel 数据导入该表的方法: ✅ 方法一:使用 SQL Server Management Studio (SSMS) 的导入向导&#x…...

仓库自动化搬运:自动叉车与AGV选型要点及核心技术解析
自动叉车与AGV均可实现自主作业,无需人工驾驶即可搬运托盘化货物。然而,这两种解决方案存在一些关键差异。 自动叉车与AGV的对比 自动叉车与AGV是截然不同的车辆,其差异主要源于原始设计: 自动叉车是制造商对传统手动叉车进行改…...
java UDP 模板
UDP(User Datagram Protocol)是一种无连接的传输层协议,在 Java 中可以使用 UDP 进行网络编程。理论上没有服务器客户端之分,实际上算是有的,以下是 Java 中 UDP 编程的基本步骤和示例代码: 服务器端 创建…...
【亲测有效】Mybatis-Plus更新字段为null
Mybatis-Plus更新字段为null 遇到问题 Mybatis-Plus更新的默认行为如下: Mybatis-Plus默认如果某个传入参数的字段为null, 默认不更新这个字段, 例如有个Double类型的字段, 当前数据库数据为10, 然后传参时当前字段为null, 实际上Mybatis-Plus是不会覆盖该字段为null的, 仍然…...

NLP学习路线图(二十五):注意力机制
在自然语言处理领域,序列模型一直扮演着核心角色。从早期的循环神经网络(RNN)到如今一统天下的Transformer模型,注意力机制(Attention Mechanism) 的引入堪称一场革命。它彻底改变了模型处理序列信息的方式…...

05 APP 自动化- Appium 单点触控 多点触控
文章目录 一、单点触控查看指针的指针位置实现手势密码: 二、多点触控 一、单点触控 查看指针的指针位置 方便查看手势密码-九宫格每个点的坐标 实现手势密码: 执行手势操作: 按压起点 -> 移动到下一点 -> 依次移动 -> 释放&am…...
MyBatis-Plus LambdaQuery 高级用法:JSON 路径查询与条件拼接的全场景解析
目录 1. 查询 JSON 字段中的特定值 2. 动态查询 JSON 字段中的值 3. 查询 JSON 数组中的值 4. 查询 JSON 字段中的嵌套对象 5. 结合其他条件查询 JSON 字段 6. 使用类型处理器简化 JSON 查询 6.1 创建自定义 JSON 类型处理器 6.2 在实体类中指定自定义类型处理器 示例…...

[AI绘画]sd学习记录(一)软件安装以及文生图界面初识、提示词写法
目录 目录一、安装软件二、文生图各部分模块 1. 下载新模型 & 画出第一张图2. 提示词输入 2.1 设置2.2 扩展模型2.3 扩展模型权重调整2.4 其他提示词输入2.5 负向提示词2.6 生成参考 3. 采样方法4. 噪声调度器5. 迭代步数6. 提示词引导系数 一、安装软件 软件安装&…...

SpringBoot(八) --- SpringBoot原理
目录 一、配置优先级 二、Bean的管理 1. Bean的作用域 2. 第三方Bean 三、SpringBoot原理 1. 起步依赖 2. 自动配置 3. 自动配置原理分析 3.1 源码解析 3.2 Conditional 一、配置优先级 SpringBoot项目当中支持三类配置文件: application.properties a…...
SpringBoot自动化部署全攻略:CI/CD高效实践与避坑指南
SpringBoot自动化部署全攻略:CI/CD高效实践与避坑指南 🚀 一、现代化部署方案选型对比 1. 主流CI/CD工具对比 工具优势适用场景Jenkins插件丰富、可扩展性强复杂流水线、混合云环境GitHub Actions与GitHub深度集成、易用GitHub项目、中小团队GitLab CI/CD一体化平台、内置…...
idea json生成实体类
在IntelliJ IDEA中,可以通过安装GsonFormat或GsonFormatPlus插件快速生成Java实体类。具体操作流程包括安装插件、创建空类后使用快捷键调出生成界面,输入JSON数据即可自动生成对应字段和结构。 一、操作流程与工具选择 1、插件安装 在ID…...

C# 类和继承(抽象成员)
抽象成员 抽象成员是指设计为被覆写的函数成员。抽象成员有以下特征。 必须是一个函数成员。也就是说,字段和常量不能为抽象成员。必须用abstract修饰符标记。不能有实现代码块。抽象成员的代码用分号表示。 例如,下面取自一个类定义的代码声明了两个抽…...
gitlab rss订阅失败
问题:gitlab rss订阅失败 处理:http://gitlab.com/dashboard/projects.atom?feed_tokenXXXXXXX 这个XXX要改成用户设置里的Feed令牌 推荐本地rss订阅器:GitHub - yang991178/fluent-reader: Modern desktop RSS reader built with Electro…...

鸿蒙仓颉语言开发实战教程:商城登录页
听说Pura80要来了?感觉华为的新品像下饺子一样,让人目不暇接,每隔几天就有发布会看,真不错呀。 节后第一天,为了缓解大家假期的疲惫,咱们今天做点简单的内容,就是商城的登录页面。 其实这一次分…...

JavaScript 数组与流程控制:从基础操作到实战应用
在 JavaScript 编程的世界里,数组是一种极为重要的数据结构,它就像是一个有序的 “收纳盒”,能够将多个值整齐地存储起来。而流程控制语句则像是 “指挥官”,能够按照特定的逻辑对数组进行遍历和操作。接下来,就让我们…...
STM32中自动生成Flash地址的方法
每页大小为 2KB(0x800 字节),地址间隔为 0x800 总地址空间覆盖范围:0x08000000 ~ 0x0803F800(共 256KB) 适用于 STM32 大容量 / 中容量产品(如 F103 系列) 代码如下 // 通用定义(需根据实际页大小调整) #define FLASH_BASE_ADDR 0x08000000 #define FLASH_PAGE_SIZ…...
Matlab | MATLAB 中的插值详解
MATLAB 中的插值详解 插值是数值分析中的核心技术,用于在已知数据点之间估计未知点的值。MATLAB 提供了完整的插值函数库,涵盖一维到高维数据,支持多种插值方法。以下从基础到高级全面解析: 一、插值核心概念 1. 数学本质 给定数据点 ( x i , y i ) (x_i, y_i) (<...

SkyWalking架构深度解析:分布式系统监控的利器
一、SkyWalking概述 SkyWalking是一款开源的APM(应用性能监控)系统,专门为微服务、云原生和容器化架构设计。它由Apache软件基金会孵化并毕业,已成为分布式系统监控领域的明星项目。 核心特性 分布式追踪:跨服务调用链路的完整追踪服务…...

vue2中的render函数
<script> export default {components: {},name: "renderElems",render (h, context) {return this.$attrs.vnode;},updated() {} } </script> <style scoped> </style>分析一下上面.vue组件: 组件结构: 这是一个非…...
逆向工程开篇(连载中)
项目特点 这个专栏专门设计用于汇编逆向工程研究,包含: ✅ 18个测试模块,覆盖所有主要C语言特性✅ 1200行工具类代码,400行主程序代码✅ 完整的Visual Studio 2017项目支持✅ Debug和Release两种构建配置✅ 静态库和可执行文件分…...