文章目录
- 一、 环境配置
- 资源配置
- 操作系统
- 资源配置
- 服务器1
- 服务器2
- 服务器3
- 目录规划
- 二、Redis软件部署
- 2.1 上传相关软件包
- 2.2 安装软件
- 2.3 修改配置文件
- 2.3.1 修改redis.conf
- 2.3.2 修改sentinel.conf
- 2.3.3 启动
- 2.3.4 安装完成
- 三、Redis的哨兵恢复
- 3.1 现象
- 3.2 解决方法
一、 环境配置
资源配置
操作系统
18.04.6 LTS (Bionic Beaver)
资源配置
服务器1
CPU: 4核
内存: 4 GB
磁盘: 100 GB sda[系统盘] 50GB, 默认分区
sdc[数据盘] 50GB 挂载点 /dcdata
备注:数据盘需支持扩展
服务器2
CPU: 4核
内存: 4 GB
磁盘: 100 GB sda[系统盘] 50GB, 默认分区
sdc[数据盘] 50GB 挂载点 /dcdata
备注:数据盘需支持扩展
服务器3
CPU: 4核
内存: 4 GB
磁盘: 100 GB sda[系统盘] 50GB, 默认分区
sdc[数据盘] 50GB 挂载点 /dcdata
备注:数据盘需支持扩展
备注:数据盘需支持扩展
备注:redis存储根据业务数据量来看服务器的配置。
目录规划
无
二、Redis软件部署
2.1 上传相关软件包
此安装包为针对ubuntu18.04.6版本的镜像源,相关的deb文件。也可通过安装
build-essential和pkg-config 工具来编译安装redis。
三台机器均上传该文件包
2.2 安装软件
dpkg -i *.deb
2.3 修改配置文件
2.3.1 修改redis.conf
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/var/run/redis/redis-server.pid"
loglevel notice
logfile "/var/log/redis/redis-server.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/var/lib/redis"
masterauth "redis"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass "redis"
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
修改以下配置项
.
2.3.2 修改sentinel.conf
daemonize yes
pidfile "/var/run/sentinel/redis-sentinel.pid"
logfile "/var/log/redis/redis-sentinel.log"
protected-mode no
port 26379
dir "/var/lib/redis"
sentinel myid e5ddbb49c8b2eb9374ace273800135b8fd1bf6f0
sentinel monitor redismaster 10.255.131.11 6379 2
sentinel auth-pass redismaster redis
sentinel config-epoch redismaster 1
sentinel leader-epoch redismaster 1
sentinel down-after-milliseconds redismaster 3
2.3.3 启动
systemctl start redis
systemctl start redis-sentinel
2.3.4 安装完成
手动kill掉12上的redis进程; 3秒后切换
三、Redis的哨兵恢复
3.1 现象
哨兵脑裂;通过 redis-cli 查看主从与查看redis-sentinel 里面的配置信息不一致;
INFO replication
哨兵中的主节点为 cat /etc/redis/sentinel.conf
3.2 解决方法
- 找出拥有最新数据的节点,手动设置为主节点
slaveof no one
其他节点设置同步的主节点
SLAVEOF 10.255.131.11 6379
- 手动修改 /etc/redis/sentinel.conf 文件;使各节点的主节点都保持一致; 以及修改下方的从节点信息,每个节点都有自己的myid;不要弄错了。
修改后再重启下sentinel即可;
systemctl restart sentinel
拥有最新数据的节点,手动设置为主节点
slaveof no one
其他节点设置同步的主节点
SLAVEOF 10.255.131.11 6379
- 手动修改 /etc/redis/sentinel.conf 文件;使各节点的主节点都保持一致; 以及修改下方的从节点信息,每个节点都有自己的myid;不要弄错了。
修改后再重启下sentinel即可;
systemctl restart sentinel