• redis之集群一:主从


    Redis的三种集群模式

    Redis有三种集群模式,第一个就是主从模式,第二种“哨兵”模式,第三种是Cluster集群模式,第三种的集群模式是在Redis 3.x以后的版本才增加进来的,这里先说Redis第一种集群模式:主从集群模式。

    主从集群模式:

    实现主从复制(Master-Slave Replication)的工作原理:Slave从节点服务启动并连接到Master之后,它将主动发送一个SYNC命令。Master服务主节点收到同步命令后将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave从节点服务在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master主节点继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。

    主从复制的配置很简单,主要操作从节点的配置文件,主节点不需要任何改动。我们可以使用info查看role角色即可知道是主服务或从服务。

    常用命令:

    根据配置文件启动redis: ./redis-server ../etc/redis.conf
    启动redis客户端:redis-cli -p port
    Slaver连接Master:slaveof host:ip (测试时使用slaveof手动连接master,正式环境使用配置文件)
    查看主从信息:info Replication

    具体配置(测试模拟):

    1、在同一台机器上,按照1主1从的最简单的结构搭建,即1个Master,1个Slaver节点

    2、Redis配置文件redis.conf的配置:(ps:如果master节点设置了密码,子节点的配置文件就要加上:masterauth <master-password>)

    3、配置完后2个节点都是master,通过info Replication查看角色信息:

    4、配置主从节点,在从节点上执行:

    127.0.0.1:7001> slaveof 127.0.0.1 7000
    OK

    主从redis的日志显示:显示数据同步成功,主从设置成功:

    这时一个节点是master,一个是slaver,再通过info Replication查看角色信息:

     5、Master节点设置key后异步同步到Slaver节点;Slaver节点只能读取数据,但不能有写操作

    6、如果master节点挂掉,手动将slaver节点升级为Master(命令:slaveof no one 手动将Slaver节点升级为Master节点)
       操作步骤如下:
        a) Master节点: Shutdown关闭节点
        b) Slaver节点:slaveof no one将其升级为Master节点
        c) 原来的Master节点:重新启动后,可以使用slaveof 127.0.0.1 7001 连接Slaver将其视为Master节点,自己成为Slaver节点

     主从模式的优缺点

    • 优点:
    1. Master可以对应多个Slaver,甚至Slave同样可以接受其它Slaves的连接和同步请求(即slaveof 一个从节点ip+端口),这样可以有效的分担Master的同步压力
    2. Master可读可写,Master写入后立即返回,几乎同时将写入异步同步到各个Slaver,所以基本上延迟可以忽略;而Slaver只能读不能写,分担了Master的读操作压力;总体上实现了读写分离
    3. Master是以非阻塞的方式为Slaves提供服务,在Master-Slave同步期间,客户端仍然可以提交查询或修改请求;Slave同样是以非阻塞的方式完成数据同步,在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据
    • 缺点:
    1. 主从模式不具备自动容错和恢复功能,主机从机的宕机都会导致部分读写请求失败,需要等待机器重启、slaveof no one命令切换主从,手动切换前端的IP这三步才能恢复。
    2. 主机宕机,如果宕机前有部分数据未能及时同步到从机,即使切换IP后还会引入数据不一致的问题,降低了系统的可用性。
    3. Redis的主从复制采用全量复制,复制过程中主机会fork出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,受制于网络波动,对集群的性能会产生较大的影响。
    4. 不能水平扩容,这个模式的高可用特性会受到Master主节点内存的限制。

    总结

    redis的主从模式很简单,在实际的生产环境中是很少使用的,不建议使用是由它的缺点造成的,在数据量非常大的情况,或者对系统的高可用性要求很高的情况下,主从模式是不稳定的。虽然这个模式很简单,但是这个模式是其他模式的基础。

    参考:https://www.cnblogs.com/PatrickLiu/p/8426610.html

    https://www.cnblogs.com/gossip/p/5992716.html

  • 相关阅读:
    线性判别分析(Linear Discriminant Analysis, LDA)算法分析
    OpenCV学习(37) 人脸识别(2)
    OpenCV学习(36) 人脸识别(1)
    OpenCV学习(35) OpenCV中的PCA算法
    PCA的数学原理
    OpenCV学习(34) 点到轮廓的距离
    OpenCV学习(33) 轮廓的特征矩Moment
    OpenCV学习(32) 求轮廓的包围盒
    http://www.cnblogs.com/snake-hand/p/3206655.html
    C++11 lambda 表达式解析
  • 原文地址:https://www.cnblogs.com/xulan0922/p/10276886.html
Copyright © 2020-2023  润新知