一、注册redis.service服务

1. 配置服务

vim /etc/systemd/system/redis.service
添加如下内容
[Unit]
Description = Redis Server
After = network.target

[Service]
ExecStart = /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop = /usr/local/redis/bin/redis-cli -p 6379 shutdown
Restart = always
Type=forking

[Install]
WantedBy = multi-user.target

解释如下

**[Unit] **
定义了服务的描述信息以及服务启动前的依赖关系。在这里,描述为 "Redis Server",并且指定了网络服务必须已经启动(After = network.target)。
**[Service] **
包含了服务的具体执行命令以及服务的行为配置。
ExecStart:指向Redis服务器的可执行文件并附带配置文件及参数,如 --daemonize no 表示Redis服务器以非守护进程模式运行。
ExecStop:定义了redis服务停止命令。/usr/local/redis/bin/redis-cli 是 redis-cli 工具的完整路径,它是 Redis 命令行界面客户端,用于与 Redis 服务器进行交互。-p 6379: 这是 redis-cli 的端口参数,指定了 Redis 服务器监听的端口号。默认情况下,Redis 使用 6379 端口。shutdown是发送给 Redis 服务器的命令,指示服务器执行一个优雅的关闭序列,即在停止服务前,它会确保所有已打开的连接都已完成当前操作,并且所有的数据都被同步到磁盘上。
Restart :配置为 always,意味着在服务异常退出时总是尝试重启服务。
**[Install] **
指明了当前服务被启用安装到哪个目标上。 multi-user.target,意味着当系统进入多用户模式时,该服务将被启动。

2. 服务相关命令

刷新服务

systemctl daemon-reload

启动服务

systemctl start redis.service

开机自启动

systemctl enable redis.service

停止服务

systemctl stop redis.service

查询服务状态

systemctl status redis.service

服务启动遇到Active: failed (Result: start-limit) since Tue 2026-01-06 15:39:55 CST; 1s ago问题

image
通过查看redis.log日志文件,提示Could not create server TCP listening socket 127.0.0.1:6379: bind: Address already in use
image
由于在注册服务前,已经通过./redis-server /usr/local/redis/redis.conf命令启动了服务,所以进入redis-cli命令终端用shutdown命令终止服务,即可以redis服务形式重新启动
image

参考链接:https://cloud.tencent.com/developer/article/2393398