H__D  

一、主从模式介绍

  Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 

  

二、主从同步过程

1、全量复制

  

2、部分复制

  

  

三、主从模式搭建

  本例采用单例的1主2从的搭建方式。

  

服务类型角色IP地址端口
Redis master 127.0.0.1 17007
Redis slave 127.0.0.1 17008
Redis slave 127.0.0.1 17009

1、首先准备一个redis实例,参考【Redis】安装及简单使用

2、准备一份主配置文件,端口是17007

# 包含文件(redis-base.conf,文件从redis安装目录中拷贝的)
include /data/soft/redis-sentinel/redis-base.conf

# bind 绑定地址修改,外网能访问
bind 0.0.0.0

# 关闭保护模式
protected-mode no 

# 端口
port 17007

# 后台运行
daemonize yes

# pid文件
pidfile redis_17007.pid

# 日志文件
logfile "/data/log/redis-sentinel-log/redis-17007-log/redis-17007.log"

# 主认证密码
masterauth 123456

# 认证密码
requirepass 123456

# 最大内存10M,一般为机器内存的3/4
maxmemory 10mb

# 内存达到最大时策略,可选择其他策略
maxmemory-policy volatile-lru

# 目录
dir /data/soft/redis-sentinel/redis-17007/

# 快照文件
dbfilename dump-17007.rdb

3、准备一份从配置文件,端口是17008,17009,在主配置文件的基础上,修改相应配置,并加上以下2行

# 从节点要跟随的主节点
replicaof 192.168.0.3 17007

# 主节点认证密码,如果设置了密码,就要设置
masterauth 123456

4、目录结构如图:

  

5、先启动主节点,然后启动从节点

  主节点启动命令:redis-5.0.5/src/redis-server redis-17007/redis-17007.conf

  从节点启动命令:redis-5.0.5/src/redis-server redis-17008/redis-17008.conf

6、redis客户端链接主节点,查看信息

  命令:redis-5.0.5/src/redis-cli -c -h 192.168.0.3 -p 17007 -a 123456

  主节点信息:

 1 192.168.0.3:17007> INFO Replication 
 2 # Replication
 3 role:master
 4 connected_slaves:2
 5 slave0:ip=192.168.0.3,port=17008,state=online,offset=1373,lag=0
 6 slave1:ip=192.168.0.3,port=17009,state=online,offset=1373,lag=1
 7 master_replid:535c43ecbf009f8eae1930d52c2fc6149432b5ee
 8 master_replid2:0000000000000000000000000000000000000000
 9 master_repl_offset:1373
10 second_repl_offset:-1
11 repl_backlog_active:1
12 repl_backlog_size:1048576
13 repl_backlog_first_byte_offset:1
14 repl_backlog_histlen:1373

    从节点信息:

 1 192.168.0.3:17008> INFO Replication 
 2 # Replication
 3 role:slave
 4 master_host:192.168.0.3
 5 master_port:17007
 6 master_link_status:up
 7 master_last_io_seconds_ago:5
 8 master_sync_in_progress:0
 9 slave_repl_offset:1261
10 slave_priority:100
11 slave_read_only:1
12 connected_slaves:0
13 master_replid:535c43ecbf009f8eae1930d52c2fc6149432b5ee
14 master_replid2:0000000000000000000000000000000000000000
15 master_repl_offset:1261
16 second_repl_offset:-1
17 repl_backlog_active:1
18 repl_backlog_size:1048576
19 repl_backlog_first_byte_offset:1
20 repl_backlog_histlen:1261 

  7、测试,在主节点存入缓存,在从节点取出缓存

1 192.168.0.3:17007> set foo bar 
2 OK
3 192.168.0.3:17007> get foo  
4 "bar"
5 192.168.0.3:17008> get foo 
6 "bar"
7 192.168.0.3:17009> get foo 
8 "bar"

 

  

posted on 2019-08-24 23:44  H__D  阅读(3836)  评论(0编辑  收藏  举报