0
点赞
收藏
分享

微信扫一扫

Redis相关--Doeker搭建主从复制

律楷粑粑 2022-02-15 阅读 63

一、简介

主从是什么

主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

为什么要引入

  • 读写分离,性能扩展
  • 容灾快速恢复

原理

3A4D2363-2188-4BEF-8CC5-139B8F02C2ED.png

48D0C644-7977-4A73-89CD-8841116A2C41.png

二、Docker搭建,一主多从

1.因为docker部署redis默认不带配置文件,需要官网下载

版本一定要对应,不然有可能会报错

2.编写主、从配置文件

port 6379
requirepass 123456 appendonly yes

启动主redis

docker run -p 6379:6379 --name redis-master \
      -v /qqquser/redis/redis6379.conf:/etc/redis/redis.conf \
      -v /qqquser/redis/data:/data \
      --restart=always \
      -d redis:3.2 redis-server /etc/redis/redis.conf
port 6380
slaveof * 6379 
masterauth 123456 
requirepass 123456 
appendonly yes

启动从redis

docker run -p 6380:6380 --name redis-master \
      -v /qqquser/redis/redis6380.conf:/etc/redis/redis.conf \
      -v /qqquser/redis/data:/data \
      --restart=always \
      -d redis:3.2 redis-server /etc/redis/redis.conf
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=*,port=6380,state=online,offset=2741,lag=1
slave1:ip=*,port=6381,state=online,offset=2755,lag=1
master_repl_offset:2755
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:2754

三、错误情况演示

1.当主机正常,其中一个从服务挂掉

停止slave2,在主服务中添加一条数据,再启动slave2

F406B42F-B66A-4BCC-B036-9B4F51E696B0.png
发现数据加载成功

33F0F619-64C4-45B8-AF60-46E4A294FC7C.png

2.主服务器挂掉,从服务器正常

四、哨兵模式

1、进入三台redis容器: 
2、进入容器根目录 
3、创建哨兵配置文件:vim sentinel.conf(三台容器哨兵配置一模一样) 
4.输入: port:26379 
#哨兵端口号 一定要和启动命令映射第二个端口号一致 daemonize yes 
#后台启动 sentinel monitor mymaster 主节点ip 主节点端口 1 几票当选
依次三台在sentinel.conf 配置文件同一级目录执行:redis-sentinel sentinel.conf
举报

相关推荐

0 条评论