Redis 集群主从复制

为什么需要redis集群

上篇文章说了Redis的持久化,持久化的作用是防止服务器宕机数据丢失,但是,服务器宕机了,我们得需要时间修复,需要时间去处理,这段时间服务器就无法正常运转,那我们可不可以使用多台服务器,这一台服务器Redis宕机了,但其他的服务器Redis仍然可以继续运转,且Redis数据是存储在内存中的,一台服务器内存使用是有限的,大量访问进行,一台服务器内心显然是不够使用的,使用多台服务器可以分流。

redis的主从复制
  • 主少从多:通常主机作为写数据,实际数据中80%是读数据,只有20%是写数据。
  • 主写从读,读写分离:主机用于写数据(也可以读),从机只能读数据。
  • 主写同步复制到从:主机写入数据后,从机会将数据复制到自己库中。
搭建一主二从redis集群
环境
  • 条件有限,我这里就基于一台linux虚拟机,使用多个端口开启redis服务模拟多台redis服务,真正项目开发应每台服务器开启一个redis服务。
  • 准备多个redis配置文件,使用6379, 6380, 6381三个端口配置,修改端口内容:
port 6381
pidfile /var/run/redis_6381.pid
# 如果有log和持久化也改下
logfile "6381.log"
dbfilename dump6381.rdb

在这里插入图片描述

测试
  • 启用redis服务
# 启动redis服务
[root@MiWiFi-R3A-srv bin]# redis-server redisconf/redis6379.conf
[root@MiWiFi-R3A-srv bin]# redis-server redisconf/redis6380.conf
[root@MiWiFi-R3A-srv bin]# redis-server redisconf/redis6381.conf
# 查看redis服务
[root@MiWiFi-R3A-srv bin]# ps -ef|grep redis
root     107943      1  0 10:32 ?        00:00:00 redis-server 0.0.0.0:6379
root     107949      1  0 10:32 ?        00:00:00 redis-server 0.0.0.0:6380
root     107955      1  0 10:32 ?        00:00:00 redis-server 0.0.0.0:6381
root     108043 107415  0 10:35 pts/0    00:00:00 grep --color=auto redis
# 连接redis服务,建议开三个终端会话
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381
  • 查看redis服务在集群中的主从角色
        默认情况下,所有的redis服务都是主机,没有从机,下面看6379端口的redis角色:
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:149c486ad9c35147d553cbde831688694dd51de0
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
  • 设置主从关系,
        因为主机已存在,所以设置从机即可。将6380和6381两个端口的redis服务设置为从机。下面先设置6380端口的redis服务,6381重复操作即可。
# 设置redis从机,在需要设置的redis服务机中执行
127.0.0.1:6380> slaveof 127.0.0.1 6379
OK

在这里插入图片描述
   这时再看主机6379端口的redis服务角色,就会看到它有两个从机
在这里插入图片描述

  • 到这里集群已经搭建好了,会有以下信息
    全量复制: 当确定好主从关系时,从机会自动将主机的数据全量复制。
    增量复制: 既在主机写入的数据会全部被复制到从机中,可以在主机6379的redis中写入数据,在从机中可以查找到对应数据。
    读写分离: 主机可写可读,从机只可读数据。
    主机宕机: 从机原地待命,从机数据依旧可读;主机恢复,主从关系依旧。
    从机宕机: 主机少一个从机,其他从机无影响;从机恢复后,需要重新建立主从关系。
    从机上位: 当主机宕机时,可以选择一个好的从机作为主机,这时需要将从机的关系解除恢复为主机slaveof no one,然后其它从机重新绑定新的主机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-小龙人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值