Redis笔记19:redis 主从复制

概念

主从复制,是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为主节点,后者称为从阶段。数据的复制是单向的,只能由主节点复制到从节点。
默认情况下每台服务器都是主节点,可以有多个从节点,但是一个从节点只能有一个主节点。

主从复制的作用主要包括:

1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
2.故障恢复:当主节点出现问题,可以有从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3.负载均衡。
4.高可用。

redis一般在项目中是不会使用一台服务器的:
1.结构上单个redis容易发生单点故障,且请求负载压力大;
2.容量上单个redis容量有限,一般单台redis的最大使用内存不应该超过20G.
所以一般会使用以下架构:

image.png

以一主两从为列

这里为了方便,是单机多配置集群做测试,也可以多机多集群。

1.复制两份作为从集的配置文件:

[root@localhost config]# ls
redis.conf
[root@localhost config]# cp redis.conf redis-slave01.conf
[root@localhost config]# cp redis.conf redis-slave02.conf
[root@localhost config]# ls
redis.conf  redis-slave01.conf  redis-slave02.conf

2.修改每个配置文件中的端口(避免端口冲突)、pid名字、log文件名字、dump.rdb名字。以redis.conf为例:

port 6379

pidfile /var/run/redis_6379.pid

logfile "6379.log"

dbfilename dump6379.rdb

3.打开三个窗口,分别以三个配置文件启动,模拟三台服务器:

image.png
image.png
image.png

4:配置从库:

默认都是主机,所以只需要配置从机即可

127.0.0.1:6380> info replication        #查看当前库信息
# Replication
role:master          #角色
connected_slaves:0      #有几个从机
master_replid:d1c03d293fc017980fc7aa281a315397d7ec9170
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379    #设置为6379的从机
OK
127.0.0.1:6380> info replication      #查看
# Replication
role:slave      #角色变为了从机
master_host:127.0.0.1      #主机ip
master_port:6379        #主机端口
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:0
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:bb3e09de09fdc4b8f150c6853ac78905e74658b7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0

6381操作同上,查看主机信息:

127.0.0.1:6379> info replication
# Replication
role:master        #主机
connected_slaves:2    #有两个从机
slave0:ip=127.0.0.1,port=6380,state=online,offset=406,lag=1  
slave1:ip=127.0.0.1,port=6381,state=online,offset=406,lag=1
master_replid:bb3e09de09fdc4b8f150c6853ac78905e74658b7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:406
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:406
注:实际中,应该在配置文件中配置,是永久的,这里测试 使用命令配置 是暂时的

5.测试:

image.png
image.png
image.png

从机只能读不能写。

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值