一:概念

就是我们所说的主从复制,主机数据更新后根据配置和策略。自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。

二:配置

配从库不配主库:配置方式    slaveof   主库ip   主库端口
每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件

修改配置文件细节操作

  1. 拷贝多个redis.conf文件
  2. dump.rdb名字 dbfilename dump.rdb //237
  3. log文件名字 logfile "" //163
  4. 指定端口 port 6379 //83
  5. pid文件名字 pidfile /var/run/redis_6379.pid //150
  6. 开启daemonize yes //128
    原来  | 现在
    dbfilename dump.rdb| dbfilename dump.rdb
     pidfile /var/run/redis_6379.pid| pidfile /var/run/redis_6380.pid
    logfile ""     | logfile "6380.log"
    dbfilename dump.rdb    | dbfilename dump6380.rdb

三:常用3招

1.一主二仆:一台主机 二台备机

--1. 先开启三台主机和对应的客户端(用配置文件方式启动)

执行完下面的命令之后 会出现三个src文件(在执行客户端启动的地方)
    ./redis-server ../../myredis/redis6381.conf 
    ./redis-cli -p 6381
    127.0.0.1:6381>KEYS *

--2. 开始配置

执行info replication  查看服务器信息
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

--3.开始主从复制

  1. 主机执行命令set k1 v1之类的。
  2. 从机开始配置 SLAVEOF 127.0.0.1 6379。
  3. 查看从机上也会有相关的数据库信息了。
  4. 从机不可以set值
  5. 从机再次执行info replication会出现下面的信息
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:263
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

--4.注意点

从机关闭时:下一次启动会重新变为master  所以要成为从机需要重新执行命令      SLAVEOF 127.0.0.1 6379
主机关闭时:下一次重启时从机会自动默认关联。

2.薪火相传

上一个Slave可以是下一个slave的Master,Slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻master的写压力。
中途变更转向:会清除之前的数据,重新建立拷贝最新的。
slaveof 新主库IP 新主库端口

3.反客为主

SLAVEOF no one
使当前数据库停止与其他数据库的同步,转成主数据库

4.哨兵模式(sentinel)

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。

步骤

--1.sentinel.conf

自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错.

--2.monitor

sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机。

3.启动哨兵

./redis-sentinel /myredis/sentinel.conf 
开始监控
    monitor master mymaster 127.0.0.1 6379 quorum
    slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymast
    slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymast

4.正常主从演示

断开主机    sentinel.conf 的后台监控显示
换到了6381的端口当了主机  
假如原来的6379主机重新启动了 等哨兵监控到会自动成为从机
    sdown master mymaster 127.0.0.1 6379
    ..........
    switch-master mymaster 127.0.0.1 6379 127.0.0.1 6381

results matching ""

    No results matching ""