系统环境:fedora32-workstation
下载redis:wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz
解压:tar -xvf redis-6.0.8.tar.gz
进入源代码包目录:cd redis-6.0.8
编译安装:make && make PREFIX=/redis install
拷贝redis配置:cp redis-6.0.8/redis.conf /redis
修改redis.conf文件,将pid文件路径及名称设置为redis安装目录下redis_6379.pid。配置文件dir设置为redis安装目录。daemonize no设置为daemonize yes。保存退出。
redis目录下新建pid文件:touch redis_6379.pid
设置目录权限及所有者(若没有相应用户可自行定义):chown -R redis:redis /redis
添加systemd启动文件(注意systemd启动文件用户和组):
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
PIDFile=/redis/redis_6379.pid
ExecStartPost=/bin/sleep 0.1
ExecStart=/redis/bin/redis-server /redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
#ExecStop=/bin/kill -s QUIT $MAINPID
ExecStop=/redis/bin/redis-cli -p 6379 shutdown
PrivateTmp=true
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
刷新systemd:sudo systemctl daemon-reload
启动redis:sudo systemctl start redis
报错:
解决方法1:关闭selinux(废话)
解决方法2:设置selinux上下文,并刷新安全上下文。相关selinux参考资料:https://www.systutorials.com/docs/linux/man/8-redis_selinux/
sudo semanage fcontext -a -t redis_exec_t '/redis/bin(/.*)?'
sudo semanage fcontext -a -t redis_var_run_t '/redis/bin(/.*)?'
restorecon -R -v /redis
重新启动redis服务sudo systemctl restart redis,成功,检查redis服务,状态正常,收工。