Redis三种集群模式-Cluster集群模式

Peter20
• 阅读 1310

Redis三种集群模式-Cluster集群模式

一、  在之前有看到过redis集群部署的三种方案,不过性能最高的还是redis官方推荐的redis-cluster,性能最高,下面介绍一下redis-cluster这种模式。

1、redis-cluster

A、采用去中心化的思想,没有中心节点的说法,它使用hash slot方式将16348个hash slot覆盖到所有节点上,对于存储的每个key值,使用CRC16(KEY)&16348=slot得到他对应的hash slot,

并在访问key的时候就去找他的hash slot在哪一个节点上,然后由当前访问节点从实际被分配了这个hash slot的节点去取数据,节点之间使用轻量协议通信 减少带宽占用 性能很高,

自动实现负载均衡与高可用,自动实现failover并且支持动态扩展。

B、其内部中也需要配置主从,并且内部也是采用哨兵模式,如果有半数节点发现某个异常节点,共同决定更改异常节点的状态,如果改节点是主节点,则对应的从节点自动顶替为主节点,当原先的主节点上线后,则会变为从节点。

如果集群中的master没有slave节点,则master挂掉后整个集群就会进入fail状态,因为集群的slot映射不完整。如果集群超过半数以上的master挂掉,无论是否有slave,集群都会进入fail状态。

C、根据官方推荐 集群部署至少要3台以上的master节点。那么接下来就开始部署吧

2、在每一路径下我们添加一下配置文件

都为: redis.conf

二、集群配置

  cd /usr/software/redis/redis-cluster/

  1.创建目录

    /usr/software/redis/redis-cluster/1001

    /usr/software/redis/redis-cluster/1002

     /usr/software/redis/redis-cluster/1003

    /usr/software/redis/redis-cluster/1004

    /usr/software/redis/redis-cluster/1005

    /usr/software/redis/redis-cluster/1006

  2.修改redis.conf

    cd /usr/software/redis/redis-cluster/1001

    vim redis.conf

    #修改如下键值对 

################################## NETWORK #####################################
#bind 127.0.0.1
protected\-mode no
port 1001 ################################# GENERAL #####################################
daemonize yes
pidfile "/var/run/redis\_1001.pid" logfile "/usr/software/redis/redis-cluster/1001/log/redis.log" ################################ SNAPSHOTTING  ################################ dir "/usr/software/redis/redis-cluster/1001/data" ################################ REDIS CLUSTER  ###############################
cluster\-enabled yes
cluster\-config-file nodes-1001.conf
cluster\-node-timeout 15000 ################################## SECURITY ###################################
requirepass "ww"

其他几个实例的配置文件修改以下配置即可(需要自己创建log,data目录):

port 100x pidfile "/var/run/redis\_100x.pid"   
logfile "/usr/software/redis/redis-cluster/100x/log/redis.log" dir "/usr/software/redis/redis-cluster/100x/data" cluster\-config-file nodes-100x.conf

三、集群启动

1、使用redis-server /usr/software/redis/redis-cluster/1001/redis.conf ...将所有节点启动

![](https://img-hello-world.oss-cn-beijing.aliyuncs.com/fd4e70802a6d9da25b6e0c242ef090a4.png)

2、启动后我们就可以创建集群啦

注意:在redis5.0后 创建集群统一使用redis-cli,之前的版本使用redis-trib.rb,但是需要安装ruby软件相对复杂,相比之前的版本5.0不需要安装额外的软件,方便。具体的可以参照redis官方网站查看 https://redis.io/topics/cluster-tutorial

创建集群命令:其中 cluster-replicas 1 代表 一个master后有几个slave,1代表为1个slave节点

redis-cli --cluster create 127.0.0.1:1001  127.0.0.1:1002 127.0.0.1:1003 127.0.0.1:1004 127.0.0.1:1005 127.0.0.1:1006 --cluster-replicas 1 -a ww 

第一次由于没有设置 -a ww 添加密码,集群创建失败,

过程中会提示以下内容,输入 yes 继续;

Can I set the above configuration? (type 'yes' to accept): yes

Redis三种集群模式-Cluster集群模式

集群自动分配结果如下:

Redis三种集群模式-Cluster集群模式

3、验证集群是否创建成功

首先查看一下主从配对情况

Redis三种集群模式-Cluster集群模式

执行 :redis-cli -c -p 1001 -a ww

数据自动分配到1002节点,连接也转移到1002 节点

Redis三种集群模式-Cluster集群模式

4、验证故障转移

结论是主节点故障后,下挂从节点会升级成主节点,并接替主节点的槽位。旧主节点上线后,也只能作为其从节点。

kill 掉1001 ,发现其从节点1004转为了master

Redis三种集群模式-Cluster集群模式  

重新启动1001,其变成slave节点

 Redis三种集群模式-Cluster集群模式

本文转自 https://www.cnblogs.com/pinghengxing/p/11143928.html,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Peter20 Peter20
3年前
Redis集群详解
Redis集群详解Redis有三种集群模式,分别是:主从模式Sentinel模式Cluster模式三种集群模式各有特点,关于Redis介绍可以参考这里:Redis官网:https://redis.io/,最新版本5.0.4主从模式主从模式介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(sl
Redis集群介绍及测试思路
Redis集群一般有四种方式,分别为:主从复制、哨兵模式、Cluster以及各大厂的集群方案。在3.0版本之前只支持单实例模式,3.0之后支持了集群方式。在3.0之前各大厂为了解决单实例Redis的存储瓶颈问题各自推出了自己的集群方案,其核心思想就是数据分片,主要有客户端分片、代理分片、服务端分片。这里咱们只介绍前三种方式:主从、哨兵、Cluster。
Peter20 Peter20
3年前
Redis几种集群模式
此文由转载现在越来越多的项目都会利用到redis,多实例redis服务比单实例要复杂的多,这里面涉及到定位、容错、扩容等技术问题。我们常用sharding技术来对此进行管理,其集群模式主要有以下几种方式:主从复制哨兵模式Redis官方Cluster集群模式(服务端sharding)Jedissharding集群(客户端sharding)
Stella981 Stella981
2年前
Redis3.0.6集群搭建
创建一个RedisCluster之前,我们需要有一些以cluster模式运行的Redis实例,这是因为cluster模式下Redis实例将会开启cluster的特征和命令。现在我有2台Vbox搭建的CentOS6虚拟机【CentOS1(192.168.56.101)和CentOS2(192.168.56.102)】,准备在此上搭建Redis集群。由于
Stella981 Stella981
2年前
Redis Cluster集群主从方案
RedisCluster集群主从方案本文介绍一种通过Jedis和Cluster实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.8.0(推荐),Redis3.0及以上版本(强制).附:RedisCluster集群主从方案:http://www.cnblogs.com/soul
Stella981 Stella981
2年前
Redis 集群之 Redis
Redis集群官方推荐方案RedisCluster集群rediscluster  通过分片实࣫容量扩展  通过主从复制实࣫节点的高可用  节点之间互相通信  每个节点都维护整个集群的节点信息  rediscluster把所有的物理节点映射到\016383\slotЇ,cluster负责维护node<sl
Stella981 Stella981
2年前
CentOS 7下 部署Redis
redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redis高可用、可扩展等问题,redis集群提供了以下两个好处:1)将数据自动切分(split)到多个节点2)当集群中的某一个节点故障时,redis还可以继续处理客户端的请求一个Redis集群包含16384个哈希槽(hashslot
Stella981 Stella981
2年前
Redis主从模式的常用类型
本文介绍Redis主从模式的常用类型。Redis的可靠性主要有主从模式和集群模式。对于主从模式而言,Redis有以下方案:Sentinel方案;Keepalived方案。Sentinel方案作为Redis主推的官方方案,主要的实现原理是通过引入哨兵sentinel节点,来投标决定master节点故障后,
Stella981 Stella981
2年前
Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析
Redis的几种常见使用方式包括:单机模式主从模式哨兵模式(sentinel)集群模式(cluster)第三方模式单机模式Redis单副本,采用单个Redis节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。优点: