参考:deepseek

原来打算搭建集群的,但是搞了一半发现最少三台机器才可以,那算了还是搞主从吧,跟之前的模式一样。

 新华为机器初始化

# 初始化镜像源
wget http://mirrors.myhuaweicloud.com/repo/mirrors_source.sh && bash mirrors_source.sh

chmod 777 mirrors_source.sh

执行命令如下

cd /usr/local/redis
wget http://download.redis.io/releases/redis-6.2.6.tar.gz // https://download.redis.io/releases/redis-6.2.1.tar.gz
tar xzf redis-6.2.6.tar.gz
cd redis-6.2.6
make && make install
mkdir /usr/local/redis/logs
mkdir /usr/local/redis/pid

touch /usr/local/redis/conf/redis.cnf touch /usr/local/redis/sentinel.conf

 然后redis.cnf配置如下

#!/bin/bash
# Redis 备份脚本

Redis 配置文件路径

REDIS_CONF="/usr/local/redis/conf/redis.cnf"

备份目录

BACKUP_DIR="/home/redis_backups"

当前日期

CURRENT_DATE=$(date +"%Y%m%d")

Redis 端口

REDIS_PORT=6369

Redis 密码(从配置文件中获取)

REDIS_PASSWORD=$(grep '^requirepass' $REDIS_CONF | awk '{print $2}')

创建备份目录

mkdir -p $BACKUP_DIR

获取 RDB 文件路径

RDB_PATH=$(grep '^dbfilename' $REDIS_CONF | awk '{print $2}') DIR=$(grep '^dir' $REDIS_CONF | awk '{print $2}') RDB_FILE="$DIR/$RDB_PATH"

执行 BGSAVE

redis-cli -p $REDIS_PORT -a $REDIS_PASSWORD BGSAVE

等待备份完成

while true; do if redis-cli -p $REDIS_PORT -a $REDIS_PASSWORD info persistence | grep -q "rdb_bgsave_in_progress:0"; then break fi sleep 1 done

复制备份文件到备份目录

cp $RDB_FILE "$BACKUP_DIR/dump_$CURRENT_DATE.rdb"

删除 7 天前的备份

find $BACKUP_DIR -name "dump_*.rdb" -mtime +7 -exec rm {} ;

sentinel.conf配置如下

port 26379
daemonize yes
pidfile "/usr/local/redis/pid/redis-sentinel.pid"
logfile "/usr/local/redis/logs/sentinel.log"
#下面这个ip是001的ip
sentinel monitor mymaster 25.11.0.1 6369 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

 一些包含的具体操作命令如下

# 启动redis服务
redis-server /usr/local/redis/conf/redis.cnf
# 启动sentinel哨兵
redis-sentinel /usr/local/redis/sentinel.conf

连接redis,也可以远程

redis-cli -h 115.120.1.1 -p 26379

关闭redis服务

redis-cli -h 115.120.1.1 -p 6369 -a yourpassword shutdown