Redis集群模式

目录

前言

一、集群的作用

二、集群模式的数据分片

三、集群模式的主从复制模型

四、Redis集群模式

Redis集群部署

 开启群集功能

修改所有集群服务的配置文件端口,使其不一致 

启动集群

集群测试 


 

前言

1、集群,即 Redis Cluster, 是Redis 3. 0开始引入的分布式存储方案。
2、集群由多个节点(Node) 组成,Redis 的数据分布在这些节点中。
3、集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进

行主节点数据和状态信息的复制。

一、集群的作用

①数据分区:数据分区(或称数据分片) 是集群最核心的功能。

集群将数据分散到多个节点,一方面突破了 Redis 单机内存大小的限制,存储容量大大增加;
另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
Redis 单机内存大小受限问题,在介绍持久化和主从复制时都有提及;
例如,如果单机内存太大,bgsave 和 bgrewriteaof的 fork 操作可能导致主进程阻塞,主从环境下主机切换时可能导致从节点长时间无法提供服务,全量复制阶段主节点的复制缓冲区可能溢出。

②高可用:集群支持主从复制和主节点的自动故障转移(与哨兵类似) ;当任一节点发生故障时,集群仍然可以对外提供服务。

二、集群模式的数据分片

1、Redis集群引入了哈希槽的概念
2、Redis集群有 16384 个哈希槽( 编号0-16383)
3、集群的每个节点负责一部分哈希槽
4、每个Key 通过 CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作

三、集群模式的主从复制模型

<- - -以3个节点组成的集群为例- - ->
节点A 包含0到5460号哈希槽
节点B 包含5461到10922号哈希槽
节点C 包含10923到16383号哈希槽

1、集群中具有A、B、C三个节点,如果节点B失败了,整个集群就会因缺少5461-10922这个范围的槽而不可以用。
2、为每个节点添加一个从节点A1、B1、C1整个集群便有三个Master节点和三个slave节点组成,在节点B失败后,集群选举B1位为主节点继续服务。当B和B1都失败后,集群将不可用。

四、Redis集群模式

Redis集群部署

Redis集群一般需要6个节点,3主3从。
这里使用一个服务器,模拟三主三从

#在当前服务器配置6个redis服务
cd /etc/redis/
mkdir -p /etc/redis/redis-cluster/redis600{1…6}
cd redis-cluster/redis6001
#复制配置文件及程序到目录中
cp /opt/redis-5.0.7/redis.conf ./
cp /opt/redis-5.0.7/src/redis-cli ./
cp /opt/redis-5.0.7/src/redis-server ./

 开启群集功能


vim redis.conf
69 #bind 127.0.0.1 #将其注释,即监听所有端口
88 protected-mode no #关闭保护模式
92 port 6001 #为了区分,将端口更改,6个不能相同
136 daemonize yes #开启守护进程
699 appendonly yes #开启AOF持久化
832 cluster-enabled yes #开启集群功能
840 cluster-config-file nodes-6001.conf #群集名称文件设置
846 cluster-node-timeout 15000 #群集超时时间设置

将配置好的文件复制到其余目录中 


for i in {2…6};do
cp ./* /etc/redis/redis-cluster/redis600$i
done

 

修改所有集群服务的配置文件端口,使其不一致 

for n in {2..6};do
sed -i '92s/6001/600'$n'/' /etc/redis/redis-cluster/redis600$n/redis.conf
sed -i '840s/6001/600'$n'/' /etc/redis/redis-cluster/redis600$n/redis.conf
done

启动redis节点 


#分别进入6个节点,进行服务启动redis-server redis.conf
for m in {1…6};do
cd /etc/redis/redis-cluster/redis600$m/
redis-server redis.conf
done

启动集群

redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
-replicas 1 表示每个主节点有1个从节点
若使用6台服务器,此处节点ip请换为自己真实ip即端口号

集群测试 

 

redis-cli -p 6001 -c
#-c 参数,节点之间可以相互跳转
cluster slots  
#查看节点的哈希槽编号范围
cluster keyslot 键名
#查看键的哈希槽编号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值