redis--redis Cluster

11 篇文章 0 订阅

简介

解决了redis单机写入的瓶颈问题,即单机的redis写入性能受限于单机的内存大小、并发数量、网卡速率等因素无中心架构的redis cluster机制,在无中心的redis集群当中,其每个节点保存当前节点数据和整个集群状态,每个节点都和其他所有节点连接

特点

1:所有Redis节点使用(PING机制)互联
2:集群中某个节点的失效,是整个集群中超过半数的节点监测都失效才算真正的失效
3:客户端不需要proxy即可直接连接redis,应用程序需要写全部的redis服务器IP。
4:redis cluster把所有的redis node映射到 0-16383个槽位(slot)上,读写需要到指定的redis node上进行操作,因此有多少个reids node相当于redis 并发扩展了多少倍。
5:Redis cluster预先分配16384个(slot)槽位,当需要在redis集群中写入一个key -value的时候,会使用CRC16(key) mod 16384之后的值,决定将key写入值哪一个槽位从而决定写入哪一个Redis节点上,从而有效解决单机瓶颈

架构

基本架构

假如三个主节点分别是:A, B, C 三个节点,采用哈希槽 (hash slot)的方式来分配16384个slot 的话
它们三个节点分别承担的slot 区间可以是:

节点A覆盖 0-5460
节点B覆盖 5461-10922
节点C覆盖 10923-16383

主从架构

Redis cluster的架构虽然解决了并发的问题,但是又引入了一个新的问题,每个Redis master的高可用如何解决?
那就是对每个master 节点都实现主从复制,从而实现 redis 高可用性

部署redis

前期

1.每个redis node节点采用相同的硬件配置、相同的密码、相同的redis版本。

2.每个节点必须开启的参数

cluster-enabled yes #必须开启集群状态,开启后redis 进程会有cluster显示

cluster-config-file nodes-6380.conf #此文件有redis cluster集群自动创建和维护,不需要任何手动操作

3.所有redis服务器必须没有任何数据

4.先启动为单机redis且没有任何key value

环境

192.168.148.158:6379   192.168.148.158:6380

192.168.148.159:6379   192.168.148.159:6380

192.168.148.160:6379   192.168.148.160:6380

集群搭建

redis-cli --cluster create 192.168.148.158:6379 192.168.148.158:6380 192.168.148.159:6379 192.168.148.159:6380 192.168.148.160:6379 192.168.148.160:6380 --cluster-replicas 1

 显示集群信息

 redis-cli --cluster check 192.168.148.158:6379

16384 槽位

redis-cli --cluster info 192.168.148.158:6379 

 

非交互

redis-cli -p 192.168.148.158 -p 6379 cluster info

 生成配置文件

 验证集群写入key

192.168.148.158:6379> set key1 value1   经过算法计算,当前key的槽位需要写入指定的node
(error) MOVED 9189 192.168.148.159:6379 槽位不在当前node所以无法写入
192.168.148.159:6379> set key1 values  指定的node就可以写入
OK
192.168.148.159:6379> keys *
1) "key1"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值