The current document is available in English. Click to switch to English
初始准备
本次安装基于 Centos7
创建redis用户
groupadd redis useradd -g redis redis -s /sbin/nologin -M
|
创建redis相关目录
mkdir -pv /data/redis chown -R redis:redis /data/redis
mkdir -pv /data/logs/redis chown -R redis:redis /data/logs/redis
mkdir -pv /usr/local/redis/{bin,etc}
|
编译安装
yum install clang -y
cd /data/packages
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
cd redis-6.2.6 && CC=clang make
install -p -D -m 0755 src/redis-benchmark /usr/local/redis/bin/ install -p -D -m 0755 src/redis-check-aof /usr/local/redis/bin/ install -p -D -m 0755 src/redis-check-rdb /usr/local/redis/bin/ install -p -D -m 0755 src/redis-cli /usr/local/redis/bin/ install -p -D -m 0755 src/redis-sentinel /usr/local/redis/bin/ install -p -D -m 0755 src/redis-server /usr/local/redis/bin/ install -p -D -o redis redis.conf /usr/local/redis/etc/ ln -svf /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
|
配置相关
修改配置文件
export REDIS_HOME=/usr/local/redis sed -i s@'^logfile .*'@"logfile /data/logs/redis/redis.log"@ $REDIS_HOME/etc/redis.conf sed -i s@'^dir .*'@"dir /data/redis"@ $REDIS_HOME/etc/redis.conf sed -i s@'^pidfile .*'@"pidfile /data/redis/redis_6379.pid"@ $REDIS_HOME/etc/redis.conf sed -i s@'^bind .*'@"bind 0.0.0.0"@ $REDIS_HOME/etc/redis.conf
|
配置 shutdown脚本 脚本
vim /usr/local/redis/bin/redis-shutdown
|
#!/bin/bash test x"$REDIS_DEBUG" != x && set -x
REDIS_CLI=/usr/local/redis/bin/redis-cli
SERVICE_NAME="$1" if [ -z "$SERVICE_NAME" ]; then SERVICE_NAME=redis fi
CONFIG_FILE="/usr/local/redis/etc/$SERVICE_NAME.conf"
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`
HOST=${HOST:-127.0.0.1} if [ "$SERVICE_NAME" = redis ]; then PORT=${PORT:-6379} else PORT=${PORT:-26739} fi
[ -z "$PASS" ] || ADDITIONAL_PARAMS="-a $PASS"
if [ -e "$SOCK" ] ; then $REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown else $REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown fi
|
chmod +x /usr/local/redis/bin/redis-shutdown
|
创建 Systemd 配置
cat >/usr/lib/systemd/system/redis.service<<EOF [Unit] Description=Redis persistent key-value database After=network.target After=network-online.target Wants=network-online.target
[Service] ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf --supervised systemd ExecStop=/usr/local/redis/bin/redis-shutdown Type=simple User=redis Group=redis RuntimeDirectory=redis RuntimeDirectoryMode=0755 LimitNOFILE=10240
[Install] WantedBy=multi-user.target EOF
systemctl daemon-reload systemctl start redis systemctl enable redis systemctl status redis
|