Redis集群(三)Cluster集群

在哨兵模式中,仍然只有一个Master节点,当并发写请求较大时,无法缓解写的压力,在3.0版本Redis-Cluster出现解决了这个问题

Redis-Cluster集群特点:

  1)由多个Redis服务器组成的分布式网络服务集群

  2)集群之中由多个Master主节点,每一个主节点都可读可写

  3)节点之间相互通信,两两相连

  4)Redis集群无中心节点

在Redis-Cluster集群中,可以为每一个主节点添加从结点,主节点和从结点遵循主从模型的特性(添加从节点可以扩展系统的读性能)

Redis-Cluster集群的故障转移机制:

  Redis-Cluster集群的故障转移机制和Redis Sentinel基本一样,区别在于Redis-Cluster集群的故障转移是由集群中其他在线的主节点负责进行的,所以集群不必另外使用Redis Sentinel

Redis-Cluster集群分片策略:

  分片策略主要是解决key存储位置的

  集群将整个数据库分为16384个槽位(solt),所有的key-value数据都存储在这些solt的某一个中,而一个槽位可以存放多个数据,key的槽位计算公式为:slot_number=crc16(key)%16384,其中crc16为16位循环冗余校验和函数。

  集群中的每个主节点都可以处理0个至16383个槽,当16384个槽都有某个节点在负责处理时,集群进入上线状态(反之则处于瘫痪状态),并开始处理客户端发送的数据命令请求。

Redis-Cluster集群redirect

  由于Redis集群无中心节点,请求会随机发给任意主节点:

  

  主节点只会处理自己负责槽位的命令请求,其它槽位的命令请求,该主节点会返回客户端一个转向错误;

  客户端根据错误中包含的地址和端口重新向正确的负责的主节点发起命令请求。

配置流程:

1.环境搭建

  1.1安装ruby环境

 

  1.2安装ruby和redis的接口程序,利用xftp将redis-3.0.0.gem拷贝至/usr/local下安装

2.集群的规划

  由于物理机数量有限,本文将采用同一台主机构建一个伪分布式集群,以不同端口表示不同的redis节点:

  主节点:192.168.93.4:7001 192.168.93.4:7002 192.168.93.5:7003

  从结点:192.168.93.4:7004 192.168.93.4:7005 192.168.93.5:7006

  在/usr/local/下创建redis-cluster目录,7001~7006

3.将redis解压路径下的配置文件redis.conf,依次拷贝到7001~7006目录中,并修改(port、bind、protected-mode、cluster)

建议配置(daemonized  yes 后台启动,logfile  /usr/local/redis/redis-cluster/700X/node.log日志输出位置)

7001的配置

其他节点配置同7001

4.指定各个节点的配置文件启动客户端

5.执行创建集群的命令(进入redis安装源码src下)

创建成功

利用客户端查看集群信息

-c表示以集群方式连接redis

-h指定ip地址,

-p指定端口号

cluster nodes 查询集群结点信息;

cluster info 查询集群状态信。

添加主节点:

下面是添加一个master主节点添加7007节点,添加一个“7007”目录作为新节点,配置信息同前面7001~7006配置

通过客户端7007发现已加入到集群中

为7007节点分配hash槽,才能存储数据

1)先连上集群

2)输入hash槽的数量

3)输入7007节点的id值

4)输入分配槽点的源节点id

输入all则为从每一主节点中分配

5)同意分配计划,或取消重新分配

通过客户端查看集群状态

添加从节点(先配置7008的基础信息,同上7001~7007)

到src目录下添加从节点

添加成功

通过客户端查看集群状态

原文地址:https://www.cnblogs.com/lch-Hao/p/10961617.html

时间: 2024-10-29 12:04:57

Redis集群(三)Cluster集群的相关文章

redis 3.0.7 cluster 集群部署

一.环境描述 DB:redis 3.0.7 最新稳定版 OS:centos 6.6_x64 二.安装步骤 1.基本软件包安装 [[email protected] ~]# yum -y install ruby [[email protected] ~]# yum -y install rubygems 下载路径,上传到/tmp路径下 https://rubygems.org/gems/redis/versions/3.0.0 [[email protected] ~]# cd /tmp [[e

redis 4.0.1 | cluster集群

安装: cd /opt wget http://download.redis.io/releases/redis-4.0.1.tar.gz tar zxf redis-4.0.1.tar.gz cd redis-4.0.1 make 集群搭建: 2台机器                   3 master      --         3slave master: cd src cp redis-trib.rb /usr/local/bin/ mkdir redis_cluster mkdi

Redis Cluster集群搭建与应用

1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. 节点的fail是通过集群中超过半数的节点检测失效时才生效. 客户端与redis节点直

redis cluster 集群畅谈(三) 之 水平扩容、slave自动化迁移

上一篇http://www.cnblogs.com/qinyujie/p/9029522.html, 主要讲解 实验多master写入.读写分离.实验自动故障切换(高可用性),那么本篇我们就来聊了聊redis cluster 水平扩容以及自动化 slave 迁移. redis repliction 主从架构,一主多从更多的是为了提高 读QPS .而 redis cluster 集群中不建议或者没有说做物理的读写分离了,redis cluster 集群更强调的是通过master的水平扩容,来横向扩

纯手动创建Redis Cluster集群,最原始的三主三从创建方法

Cluster集群Redis Cluster是官方提供的高可用方案,一个去中心化的Redis集群方案,所有的Redis节点彼此间互联(PING-PONG机制),客户端直连任意节点即可连接到Cluster集群,无需haproxy中间件.总结:1. 去中心化,分片存储,把所有的物理节点映射到[0-16383]共16384个slot(槽位)上,并不一定平均分配.2. Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 1

redis cluster 集群重启关闭

找遍了redis cluster官方文档,没发现有关集群重启和关闭的方法.为啥会没有呢,猜测redis cluster至少要三个节点才能运行,三台同时挂掉的可能性比较小,只要不同时挂掉,挂掉的机器修复后在加入集群,集群都能良好的运作,万一同时挂掉,数据又没有备份的话,就有大麻烦了. redis cluster集群中的节点基本上都对等的,没有管理节点.如果要让所有节点都关闭,只能关闭进程了# pkill -9 redis 把所有集群都关闭,然后在重新启动,会报以下错误 # redis-trib.r

Redis Cluster集群搭建测试

# Redis Clutser # ## 一.Redis Cluster集群 ## 参考资料: http://www.cnblogs.com/lykxqhh/p/5690923.html Redis集群搭建的方式有多种,例如使用zookper等,但从redis3.0之后版本支持redis cluster集群,Redis Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互

redis应用之cluster(集群)的安装配置

一.redis cluster介绍: 在redis3.0之前的版本中是没有集群功能的,只有master-slave模式,这种模式有个弊端是master主机挂掉,客户端过来的请求就处理不了了.虽然可以通过sentinel高可用来解决这一问题,但是当数据量很庞大的时候,也会成为影响性能的瓶颈,所以可以考虑配置redis cluster来提高性能.Redis集群是一个提供在多个Redis节点间共享数据的程序集,它并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那

redis cluster集群理解

Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.     2.节点的fail是通过集群中超过半

Redis Cluster集群部署方案

什么是 Redis 集群 Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现,集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset). Redis 集群中不存在中心(central)节点或者代理(proxy)节点,集群的其中一个主要设计目标是达到线性可扩展性(linear scalability). Redis 集群为了保证一致性(consistency)而牺牲了一部分容错性:系统会在保证对网络断线(net