2022/01/20 北京 redis(4) 集群配置和slot插槽

容量不够,redis如何进行扩容呢?集群。

redis集群实现了对redis的水平扩容,即启动n个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数的1/N.

1、代理主机的方式,至少需要8台服务器。(紫色的矩形框代表从服务器)

2、无中心化集群

任何一个服务都可以作为集群的入口


redis cluster 配置修改     (cluster:群,聚集)

配置集群: 将每个数据库配置文件的cluster-enabled 开启(设置成yes)即可。

cluster-enabled yes  //打开集群模式
cluster-config-file    nodes-6379.conf//设定节点配置文件名
cluster-node-timeout 15000(毫秒)  //设定节点失联时间,超过后自动主从切换。

linux命令创建6个配置文件

cp redis6379.conf redis6389.conf //复制文件
vi  redis6389.conf //查看文件内容
:%s/6379/6380 //修改端口号(替换)
:wq!//保存退出

6个节点合体:(使成为一个reids集群) 

在这个目录下:cd/opt/redis-6.2.1/src  

使用最简单的方式,一台主机(master),一台从机(slave),正好三组。


配置好集群以后,

查看集群信息:cluster nodes 

如何分配6个节点:分配原则是尽量保证每一个主数据库运行在不同的ip地址,每个主库和从库不在一个ip地址上。


Redis 集群中内置了 16384 个哈希槽

当需要在 Redis 集群中放置一个 key-value时,redis 先对 key(有效值)使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

报错:

根据user组的名字计算插槽:

mset name{user} lucy age{user} 20

查看自己插槽范围的值

cluster keyslot cust
cluster countkeysinslot 4847
cluster getkeysinslot 4847 10//返回10个4847插槽中的键


 故障恢复:

如果主节点下线,从节点能自动升为主节点。主节点再恢复的话,主节点就变为从机。

如果某一段插槽的主从服务都挂掉,取决于redis.conf中的参数配置

  cluster-requrie-full-coverage  为yes,那么整个集群都挂掉

  cluster-requrie-full-coverage  为no,那么该插槽数据全都不能使用,也无法存储

cluster nodes //查看当前服务的节点信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值