原理:

1、配从(库)不配主(库)

2、配从: slaveof 主IP 主端口

3、主写从读、读写分离

4、从连前后同

5、主断从待命、从断重新连

10、一主二从集群搭建(一台服务器模拟三台主机)

第一步:安装redis,参考60、Redis安装配置

第二步:修改三个文件的port端口,pid文件名,日志文件名,rdb文件名

# 新建三个配置文件 redis6379.conf,redis6389.conf,redis6399.conf
cat > redis6379.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/redis.conf
daemonize yes
port 6379
pidfile /var/run/redis_6379.pid
logfile 6379.log
dbfilename dump6379.rdb
EOF


cat > redis6382.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/redis.conf
daemonize yes
port 6382
pidfile /var/run/redis_6382.pid
logfile 6382.log
dbfilename dump6382.rdb
# masterauth pwd
# 通过认领master的方式配置slave
slaveof 127.0.0.1 6379
EOF

cat > redis6384.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/redis.conf
daemonize yes
port 6384
pidfile /var/run/redis_6384.pid
logfile 6384.log
dbfilename dump6384.rdb
# masterauth pwd
# 通过认领master的方式配置slave
slaveof 127.0.0.1 6379
EOF

第三步:分别开启三个redis服务,一主二从。

# 主
redis-server redis6379.conf &

# 一从
redis-server redis6382.conf &

# 二从
redis-server redis6384.conf &

第四步:相关命令

# 查看主从配置状态
info replication

# 移除自身从属
slaveof no one

第五步:配置sentinel哨兵,自动完成选举master。高可用方案

vim sentinel.conf
# 注释以下配置
# port 26379
# daemonize no
# pidfile /var/run/redis-sentinel.pid
# logfile "redis-sentinel.log"
# sentinel monitor mymaster 127.0.0.1 6379 2

# 哨兵启动奇数个,最少三个
# 新建三份配置文件 sentinel26379.conf sentinel26382.conf sentinel26384.conf
cat > sentinel26379.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/sentinel.conf
port 26379
daemonize yes
pidfile /var/run/redis-sentinel26379.pid
logfile "redis-sentinel26379.log"
sentinel monitor mymaster 127.0.0.1 6379 2
EOF

cat > sentinel26382.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/sentinel.conf
port 26382
daemonize yes
pidfile /var/run/redis-sentinel26382.pid
logfile "redis-sentinel26382.log"
sentinel monitor mymaster 127.0.0.1 6379 2
EOF

cat > sentinel26384.conf << EOF
include /Users/KXY/SoftWare/redis-6.2.4/sentinel.conf
port 26384
daemonize yes
pidfile /var/run/redis-sentinel26384.pid
logfile "redis-sentinel26384.log"
sentinel monitor mymaster 127.0.0.1 6379 2
EOF

redis-sentinel sentinel26379.conf &
redis-sentinel sentinel26382.conf &
redis-sentinel sentinel26384.conf &

第六步:springboot配置集群,参考spring-boot-demo中的demo-cache-redis工程

Q.E.D.


行走在天地间自由的灵魂