当前位置:   article > 正文

REDIS主从配置_redis 设置主从

redis 设置主从

目录

前言

一、概述

二、作用

三、缺点

四、redis主从复制的流程

五、搭建redis主从复制

总结



前言

Redis的主从配置是指在Redis集群中,将一个Redis节点配置为主节点(master),其他节点配置为从节点(slave),主节点负责写操作和部分读操作,从节点负责读操作。
主从配置的作用主要有以下几点:


提高读写性能:主节点负责写操作,从节点负责读操作,实现了读写分离,有效提高了系统的读写性能。从节点可以接受主节点的复制数据,这样读操作可以在从节点上执行,减轻了主节点的负载。


提高可用性:主节点故障时,从节点可以接替主节点的角色,继续提供服务。当主节点恢复后,可以重新加入集群,重新成为从节点,保证了系统的高可用性。


数据备份:从节点通过复制主节点的数据,实现了数据的备份。当主节点故障时,从节点可以提供最新的数据,避免数据丢失。


故障恢复:当主节点故障时,可以通过从节点快速恢复主节点的数据。从节点会自动发现并选举一个新的主节点,保证系统的正常运行。


扩展性:通过增加从节点,可以提高系统的读取性能和容量。当系统需求增加时,可以通过增加从节点来扩展系统的处理能力。


总的来说,主从配置可以提高Redis集群的性能、可用性和扩展性,保证数据的备份和故障恢复。
 


一、概述

redis主从复制是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。

二、作用

数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

高可用:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

三、缺点

故障恢复无法自动化;

写操作无法负载均衡;

存储能力受到单机的限制。

四、redis主从复制的流程

第一步:若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步接。

第二步:无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。 

第三步:后台进程完成缓存操作之后,Maste机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。

第四步:Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

五、搭建redis主从复制

我们搭建一主三从的模式

1.在主服务上的操作

修改配置文件vim /etc/redis.conf

设置监听地址

关闭保护模块

设置允许后台运行

重启服务,查看端口

  1. [root@localhost ~]# vim /etc/redis.conf
  2. [root@localhost ~]# systemctl restart redis
  3. [root@localhost ~]# netstat -anput |grep redis
  4. tcp 0 0 192.168.73.10:6379 0.0.0.0:* LISTEN 12833/redis-server
  5. [root@localhost ~]#

2.在从上的操作

将 配置文件redis.conf 拷贝,并以端口号命令例如

  1. [root@localhost etc]# cp redis.conf /opt/redis_6380.conf
  2. [root@localhost etc]# cp redis.conf /opt/redis_6381.conf
  3. [root@localhost etc]# cp redis.conf /opt/redis_6382.conf
  4. [root@localhost etc]#

分别编辑他们需要修改的内容

修改配置文件
    bind  0.0.0.0
    port  不同的端口号
    protected-mode = no
    daemonize = yes
    slaveof 主的IP 主的端口

编辑完成之将主从全部启动,并验证

  1. [root@localhost etc]# cp redis.conf /opt/redis_6380.conf
  2. [root@localhost etc]# cp redis.conf /opt/redis_6381.conf
  3. [root@localhost etc]# cp redis.conf /opt/redis_6382.conf
  4. [root@localhost etc]# vim /opt/redis_6380.conf
  5. [root@localhost etc]# vim /opt/redis_6381.conf
  6. [root@localhost etc]# vim /opt/redis_6382.conf
  7. [root@localhost etc]# redis-server /opt/redis_6380.conf
  8. [root@localhost etc]# redis-server /opt/redis_6381.conf
  9. [root@localhost etc]# redis-server /opt/redis_6382.conf
  10. [root@localhost etc]# netstat -anput |grep redis
  11. tcp 0 0 192.168.73.10:6379 0.0.0.0:* LISTEN 12833/redis-server
  12. tcp 0 0 0.0.0.0:6380 0.0.0.0:* LISTEN 13699/redis-server
  13. tcp 0 0 0.0.0.0:6381 0.0.0.0:* LISTEN 13711/redis-server
  14. tcp 0 0 0.0.0.0:6382 0.0.0.0:* LISTEN 13723/redis-server
  15. tcp 0 0 192.168.73.10:37065 192.168.73.10:6379 ESTABLISHED 13723/redis-server
  16. tcp 0 0 192.168.73.10:34195 192.168.73.10:6379 ESTABLISHED 13699/redis-server
  17. tcp 0 0 192.168.73.10:6379 192.168.73.10:37065 ESTABLISHED 12833/redis-server
  18. tcp 0 0 192.168.73.10:6379 192.168.73.10:34195 ESTABLISHED 12833/redis-server
  19. tcp 0 0 192.168.73.10:46341 192.168.73.10:6379 ESTABLISHED 13711/redis-server
  20. tcp 0 0 192.168.73.10:6379 192.168.73.10:46341 ESTABLISHED 12833/redis-server
  21. [root@localhost etc]#

3、验证

使用redis-cli命令行登录redis服务器,输入role指令查看状态

  1. [root@localhost etc]# redis-cli -h 192.168.73.10 -p 6379
  2. 192.168.73.10:6379> role
  3. 1) "master"
  4. 2) (integer) 435
  5. 3) 1) 1) "192.168.73.10"
  6. 2) "6380"
  7. 3) "435"
  8. 2) 1) "192.168.73.10"
  9. 2) "6381"
  10. 3) "435"
  11. 3) 1) "192.168.73.10"
  12. 2) "6382"
  13. 3) "435"
  14. 192.168.73.10:6379>

在master节点上,录入数据,在slave节点上查看到对应数据即可

master录入

  1. 192.168.73.10:6379> set hy hy
  2. OK
  3. 192.168.73.10:6379> get hy
  4. "hy"
  5. 192.168.73.10:6379>

slave查看

  1. [root@localhost etc]# redis-cli -h 192.168.73.10 -p 6380
  2. 192.168.73.10:6380> get hy
  3. "hy"
  4. 192.168.73.10:6380> exit
  5. [root@localhost etc]# redis-cli -h 192.168.73.10 -p 6381
  6. 192.168.73.10:6381> get hy
  7. "hy"
  8. 192.168.73.10:6381> exit
  9. [root@localhost etc]# redis-cli -h 192.168.73.10 -p 6382
  10. 192.168.73.10:6382> get hy
  11. "hy"
  12. 192.168.73.10:6382>

验证成功


总结

在配置主从复制上大家要注意的是配置项的修改

master服务器需要改的地方:

bind  监听地址
port  端口
protected-mode = no
daemonize = yes

slave需要修改的是

bind  监听地址
port  6380
protected-mode = no
daemonize = yes
slaveof 192.168.115.160 6379

并且需要注意去监听端口。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/816756
推荐阅读
相关标签
  

闽ICP备14008679号