文章目录
前言
原来生产环境里是有redis服务的,但redis版本比较低是 redis_version:3.2.12,这段时间我们用上Asynq,Asynq是基于redis服务开发的,并且要求redis版本大于4.0,所以就找了一另一台服务器来源码编译安装Redis,顺便把安装过程写下来供大家参考
一、官网下载redis的安装包
redis的官网地址是:https://redis.io,最新稳定版的下载地址是: https://download.redis.io/redis-stable.tar.gz,下载的过程如下:
cd /usr/local/src
wget -c https://download.redis.io/redis-stable.tar.gz
tar zxvf ./redis-stable.tar.gz
cd /usr/local/src/redis-stable
yum remove redis
二、安装redis
1.停止原来的redis服务,并且卸载旧版本,安装新版本
yum update -y
systemctl stop redis # 先停止原来的redis服务
rpm -qa |grep redis #查看已安装的redis
yum -y remove redis #yum卸载旧版redis
groupadd redis #创建用户组redis
useradd redis -g redis -s /sbin/nologin #将用户redis添加到组redis
cd /usr/local/src/redis-stable #进入安装目录
make
make install PREFIX=/usr/local/Kaiyuan/redis
cp /usr/local/src/redis-stable/redis.conf /usr/local/Kaiyuan/redis #将配置文件放到安装目录
#创建快捷方式系统目录
ln -s /usr/local/Kaiyuan/redis/bin/redis-server /usr/bin/
ln -s /usr/local/Kaiyuan/redis/bin/redis-cli /usr/bin/
2.修改配置文件
#编辑此文件
vim /usr/local/Kaiyuan/redis/redis.conf
#按esc退出后,输入如下命令保存并退出
:wq
修改的内容:
bind 127.0.0.1 172.16.0.38 #监听ip,多个ip用空格分隔
daemonize yes #允许后台启动
logfile /data/logs/redis/redis.log #日志路径
supervised auto
protected-mode no
dir /usr/local/Kaiyuan/redis/db
给目志目录权限给到redis
chown -R redis.redis /data/logs/redis
chown -R redis.redis /usr/local/Kaiyuan/redis/db
3.增加启动脚本
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/Kaiyuan/bin/redis-server /usr/local/Kaiyuan/redis/redis.conf --supervised systemd
ExecStop=/usr/local/Kaiyuan/redis/redis-shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
4.增加关闭脚本
vim /usr/local/Kaiyuan/redis/redis-shutdown
#!/bin/bash
#
# Wrapper to close properly redis and sentinel
test x"$REDIS_DEBUG" != x && set -x
REDIS_CLI=/usr/local/Kaiyuan/redis/bin/redis-cli
# Retrieve service name
SERVICE_NAME="$1"
if [ -z "$SERVICE_NAME" ]; then
SERVICE_NAME=redis
fi
# Get the proper config file based on service name
CONFIG_FILE="/etc/$SERVICE_NAME.conf"
# Use awk to retrieve host, port from config file
HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE | tail -n1`
PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE | tail -n1`
PASS=`awk '/^[[:blank:]]*requirepass/ { print $2 }' $CONFIG_FILE | tail -n1`
SOCK=`awk '/^[[:blank:]]*unixsocket\s/ { print $2 }' $CONFIG_FILE | tail -n1`
# Just in case, use default host, port
HOST=${HOST:-127.0.0.1}
if [ "$SERVICE_NAME" = redis ]; then
PORT=${PORT:-6379}
else
PORT=${PORT:-26739}
fi
# Setup additional parameters
# e.g password-protected redis instances
[ -z "$PASS" ] || ADDITIONAL_PARAMS="-a $PASS"
# shutdown the service properly
if [ -e "$SOCK" ] ; then
$REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown
else
$REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown
fi
wq保存后,为关闭脚本增加可执行权限
chmod +x /usr/local/Kaiyuan/redis/redis-shutdown
5.用systemctl管理redis服务,并增加开机自启动
systemctl daemon-reload
# 测试启动
systemctl start redis
# 测试重启,这里应该比较顺滑的重启好,如果等待超过 5 秒,肯定是有问题
systemctl restart redis
# 设置开机自启动
systemctl enable redis
总结
如果对redis版本没有要求,可以直接用centos的yum安装,可能版本不是最新的,但安装起来更方便快捷,用源码编译安装需要配置很多东西,但安装位置比较灵活。
如有问题,欢迎大家留言沟通,点赞支持!!