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 服务,需要重新执行注册服务等操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apex新版貌似移除了amp从源码安装方式装的话会在from apex import amp时报错

问题: 安装完apex结果 from apex import amp会报错 解决方法: # apex git clone https://github.com/NVIDIA/apex cd apex # https://github.com/modelscope/ms-swift/issues/4176 git checkout e13873debc4699d39c6861074b9a3b2a02327f92 pip insta…

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…

leetcode题解450:删除BST中的结点!调整二叉树的结构最难!

一、题目内容 题目要求删除二叉搜索树(BST)中值为 key 的节点,并保证删除后二叉搜索树的性质不变。返回删除节点后的二叉搜索树的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如…

让 Kubernetes (K8s) 集群 使用 GPU

要让 Kubernetes (K8s) 集群 使用 GPU,并且节点是 KVM 虚拟化 出来的,需要确保以下几点: KVM 虚拟机透传 GPU(PCIe Passthrough) 宿主机和 K8s 节点正确安装 NVIDIA 驱动 K8s 集群安装 nvidia-device-plugin Pod 配…

Android第十七次面试总结(Java数据结构)

一、Java 集合体系核心架构与高频考点 1. 集合体系架构图 Java集合框架 ├─ Collection(单列集合) │ ├─ List(有序、可重复) │ │ ├─ ArrayList(动态数组,随机访问快) │ │ ├─…

Linux 删除登录痕迹

本文介绍相对彻底的删除 Linux 的登录痕迹,操作前确保已经可以拿到能提权ROOT令牌的系统管理权限。 当然,仍可以先查阅以下文章。 Linux 删除用户终端命令行操作记录-CSDN博客 1、清楚当前会话记录 history -c # 清空当前终端内存中的历史命令 2、永…

Lighttpd 配置选项介绍

根据提供的 Lighttpd 配置选项文档(https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions ),以下是所有配置选项的详细解释、作用及适用场景,按模块分组说明: 以下是对 Lighttpd 配置选项 …

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…

Python 训练营打卡 Day 40-训练和测试的规范写法

一.单通道图片的规范写法 以之前的MNIST数据集为例 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具 from torchvision import datasets, transforms # t…

Java 枚举(Enum)的使用说明

在 Java 中,枚举(Enum)是一种特殊的数据类型,用于定义一组固定的命名常量。它比传统的常量(如 public static final)更安全、更灵活,且支持面向对象特性。以下是枚举的详细用法: 1. …

Docker部署Nginx-UI

使用如下命令拉取运行nginx-ui软件 docker run -dit \ --namenginx-ui \ --restartalways \ -e TZAsia/Shanghai \ -v /mnt/user/appdata/nginx:/etc/nginx \ -v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \ -v /var/run/docker.sock:/var/run/docker.sock \ -…

OkHttp 3.0源码解析:从设计理念到核心实现

本文通过深入分析OkHttp 3.0源码,揭示其高效HTTP客户端的实现奥秘,包含核心设计理念、关键组件解析、完整工作流程及实用技巧。 一、引言:为什么选择OkHttp? 在Android和Java生态中,OkHttp已成为HTTP客户端的标准选择…

洛谷P12170 [蓝桥杯 2025 省 Python B] 攻击次数

题目传送门 思路 首先定义一个数 n n n ,初值为 2025 2025 2025,从第一回合开始,三个英雄持续攻击,攻击方式为: 第一个英雄: 每回合攻击 5 5 5

百度之星2021——BD202104 萌新

输入格式: 本题有多组测试数据。 第一行一个数 T (1 ≤ T ≤ 1000) 表示一共有 T 组数据。对于每一组数据,输入一行两个数 a,b (1 ≤ a,b ≤ 1000000000)。 输出格式: 对每组数据,输出一行两个数分别表示最小与最大的 c&#xff0…

R语言ICU患者死亡率预测实战

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) 预测ICU患者死亡率对比较药物的疗效、比较护理的有效性、比较手术的有效性有重要意义,利用机…

leetcode240-搜索二维矩阵

leetcode 240 思路 1. 矩阵特性 首先,利用矩阵的特性是解题的关键: 每行的元素递增每列的元素递增 这意味着,如果我们在矩阵中从右上角或左下角开始搜索,可以有效缩小搜索范围 2. 从右上角开始搜索 将搜索的起点定位在矩阵…

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…

【web应用】若依框架:若依框架中的页面跳转简介

文章目录 ⭐前言1. 后端控制器跳转2. 前端路由跳转3. 菜单配置跳转4. 权限控制跳转5. 常见跳转路径 ⭐一、主目录页面跳转⭐二、菜单目录跳转⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#x…