以下是在/usr/local/redis中通过源代码安装Redis 7.0.9并将其加入systemctl管理的步骤:
首先,下载Redis 7.0.9源代码包:
wget https://download.redis.io/releases/redis-7.0.9.tar.gz
解压缩Redis源代码包:
tar xzf redis-7.0.9.tar.gz
进入解压缩后的目录:
cd redis-7.0.9
编译Redis:
make
安装Redis到/usr/local/bin目录下:
sudo make install
创建Redis配置文件:
sudo mkdir /etc/redis
sudo cp /usr/local/redis-7.0.9/redis.conf /etc/redis/
修改Redis配置文件(可根据实际需求进行修改):
sudo vi /etc/redis/redis.conf
将以下两行的注释去掉:
daemonize yes
pidfile /var/run/redis.pid
创建Redis服务文件:
sudo vi /etc/systemd/system/redis.service
写入以下内容:
[Unit]
Description=Redis In-Memory Data Store # 服务的描述
After=network.target # 指定在network.target之后启动该服务
[Service]
User=root # Redis进程将以root用户身份运行
Group=root # Redis进程将以root组身份运行
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf # 指定Redis服务启动命令和配置文件路径
ExecStop=/usr/local/bin/redis-cli shutdown # 指定Redis服务停止命令
Restart=always # 指定在服务异常退出时总是自动重启
[Install]
WantedBy=multi-user.target # 指定系统启动后自动启动Redis服务
network.target是systemd中一个特殊的系统启动目标单元(target unit),它在系统启动时负责启动网络相关的服务。具体来说,它负责在启动过程中启动网络设备、配置网络接口和启动网络服务(如DHCP、DNS等)。
在Redis服务的systemd配置文件中,After=network.target指示systemd在启动Redis服务之前,先启动network.target目标单元,确保网络服务正常运行。这是因为Redis服务可能需要依赖网络服务,比如Redis的集群模式需要在多个节点之间进行通信,需要网络的支持。
需要注意的是,network.target在不同的Linux发行版中可能存在差异,具体实现方式可能略有不同。在某些系统中,可能存在其他与网络相关的启动目标单元,如network-online.target、network-pre.target等,这些目标单元也可以用来作为服务启动顺序的依赖项。
在systemd的配置文件中,常见的三个部分,分别是[Unit]、[Service]和[Install],它们代表的意义如下:
[Unit]部分:定义服务的基本信息,如服务名称、描述和依赖关系等。[Unit]部分通常是systemd配置文件的第一部分。
[Service]部分:定义服务运行的详细信息,如服务运行的用户和组、启动命令和服务停止命令等。[Service]部分是systemd配置文件的主要部分,它告诉systemd如何启动和管理服务。
[Install]部分:定义服务的安装信息,如服务的安装目标和依赖关系等。[Install]部分通常在systemd配置文件的末尾。
在Redis的systemd配置文件中,
[Unit]部分定义了服务的描述和启动顺序,
[Service]部分定义了服务的运行信息,包括启动命令、停止命令和自动重启选项,
[Install]部分定义了服务的安装信息,包括安装目标和启动顺序。
总之,这三个部分定义了服务在系统中的基本信息、运行信息和安装信息,帮助systemd管理服务的启动、停止和重启等操作
重新加载systemctl配置:
sudo systemctl daemon-reload
启动Redis服务:
sudo systemctl start redis
将Redis服务添加到systemctl管理,开机启动:
sudo systemctl enable redis
现在,您已经成功地在/usr/local/redis中通过源代码安装了Redis 7.0.9,并将其加入到systemctl管理中