zoukankan      html  css  js  c++  java
  • redis5.0集群配置

    介绍

      redis自3.0版本以来支持主从模式的集群,可用哨兵监控集群健康状态,但这种方式的集群很不成熟,数据备份需要全量拷贝。在之后的版本才真正支持集群分片。

      在redis5.0中去除了以redis-trib.rb作为搭建集群的工具,全部整合到了redis-cli中,这极大地简化了集群环境的搭建,特别是对不懂ruby语言的小伙伴们(但是ruby以及zlib还是需要安装的)。

    Redis集群的优点:

      无中心架构,分布式提供服务。数据按照slot存储分布在多个redis实例上。增加slave做standby数据副本,用于failover,使集群快速恢复。实现故障auto failover,节点之间通过gossip协议交换状态信息;投票机制完成slave到master角色的提升。支持在线增加或减少节点。降低硬件成本和运维成本,提高系统的扩展性和可用性。

    Redis集群的缺点:

      client实现复杂,驱动要求实现smart client,缓存slots mapping信息并及时更新。目前仅JedisCluster相对成熟,异常处理部分还不完善,比如常见的“max redirect exception”。客户端的不成熟,影响应用的稳定性,提高开发难度。节点会因为某些原因发生阻塞(阻塞时间大于clutser-node-timeout),被判断下线。这种failover是没有必要,sentinel也存在这种切换场景。

    redis.conf的基本配置

      但是注意每台服务器要根据不同的端口进行修改redis.conf:

    #这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。
    #bind 127.0.0.1
    #开启远程访问
    protected-mode no
    #修改端口 
    port 7001
    #设置后台运行 
    daemonize yes
    #设置pidfile存放在 run目录下的文件名  
    pidfile  /var/run/redis_7001.pid
    #设置redis集群密码        注意:所有节点的密码都必须一致,masterauth也要加
    masterauth 123456
    requirepass 123456
    #集群下只支持单数据库,这个配置需要注意
    #databases 16
    #设置开启AOF模式  
    appendonly yes
    #设置启用集群模式 cluster-enabled yes,开启配置文件cluster-config-file nodes.conf 注意不同端口节点修改不同文件名称,超时时间 cluster-node-timeout 5000
    cluster-enabled yes
    cluster-config-file nodes-7001.conf
    cluster-node-timeout 5000

      首先,我们来看一下创建集群命令中 --replicas 1,这个代表什么意思呢?1其实代表的是一个比例,就是主节点数/从节点数的比例。那么想一想,在创建集群的时候,哪些节点是主节点呢?哪些节点是从节点呢?答案是将按照命令中IP:PORT的顺序,先是3个主节点,然后是3个从节点。这一点可以通过上面的2张图片印证。

      其次,注意到图中slot的概念。slot对于Redis集群而言,就是一个存放数据的地方,就是一个槽。对于每一个Master而言,会存在一个slot的范围,而Slave则没有。在Redis集群中,依然是Master可以读、写,而Slave只读。数据的写入,实际上是分布的存储在slot中,这和以前1.X的主从模式是不一样的(主从模式下Master/Slave数据存储是完全一致的),因为Redis集群中3台Master的数据存储并不一样。这一点将在后续的实验中得到验证。

    容灾和自动恢复

    学习连接

    redis5.0集群配置

    redis5.0集群配置

    linux公社博客

    redis集群实现(四) 数据的和槽位的分配

     redis-3.2.4 版本集群和主从搭建

  • 相关阅读:
    Android系统架构概述
    过滤IE浏览器版本
    gearman入门使用
    MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
    PHP操作Excel – PHPExcel 基本用法详解
    java中怎么判断一个字符串是否存在数组中
    为java程序制作exe
    jsonp的原理
    mysql的联合查询
    移动开发---页面头部信息
  • 原文地址:https://www.cnblogs.com/htyj/p/10889924.html
Copyright © 2011-2022 走看看