陆小曼|redis cluster搭建实践(非常详细,值得收藏)
【陆小曼|redis cluster搭建实践(非常详细,值得收藏)】一、Redis Cluster(Redis集群)简介
- redis是一个开源的key value存储系统 , 受到了广大互联网公司的青睐 。
- redis集群采用P2P模式 , 是完全去中心化的 , 不存在中心节点或者代理节点;
- redis集群是没有统一的入口的 , 客户端(client)连接集群的时候连接集群中的任意节点(node)即可 , 集群内部的节点是相互通信的(PING-PONG机制) , 每个节点都是一个redis实例;
- 为了实现集群的高可用 , 即判断节点是否健康(能否正常使用) , redis-cluster有这么一个投票容错机制:如果集群中超过半数的节点投票认为某个节点挂了 , 那么这个节点就挂了(fail) 。 这是判断节点是否挂了的方法;
- 那么如何判断集群是否挂了呢? -> 如果集群中任意一个节点挂了 , 而且该节点没有从节点(备份节点) , 那么这个集群就挂了 。 这是判断集群是否挂了的方法;
- 那么为什么任意一个节点挂了(没有从节点)这个集群就挂了呢? -> 因为集群内置了16384个slot(哈希槽) , 并且把所有的物理节点映射到了这16384[0-16383]个slot上 , 或者说把这些slot均等的分配给了各个节点 。 当需要在Redis集群存放一个数据(key-value)时 , redis会先对这个key进行crc16算法 , 然后得到一个结果 。 再把这个结果对16384进行求余 , 这个余数会对应[0-16383]其中一个槽 , 进而决定key-value存储到哪个节点中 。 所以一旦某个节点挂了 , 该节点对应的slot就无法使用 , 那么就会导致集群无法正常工作 。
- 综上所述 , 每个Redis集群理论上最多可以有16384个节点 。
3.2 把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下 , 不用担心这里没有redis01目录 , 会自动创建的 。 操作命令如下(注意当前所在路径):
cp -r redis/bin/ redis-cluster/redis011
3.3 删除redis01目录下的快照文件dump.rdb , 并且修改该目录下的redis.cnf文件 , 具体修改两处地方:一是端口号修改为7001 , 二是开启集群创建模式 , 打开注释即可 。 分别如下图所示:删除dump.rdb文件
修改端口号为7001,默认是6379
将cluster-enabled yes 的注释打开
3.4 将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06) , 创建6个redis实例 , 模拟Redis集群的6个节点 。 然后将其余5个文件下的redis.conf里面的端口号分别修改为7002-7006 。 分别如下图所示:创建redis02-06目录
- 陆小曼|华为:值得信赖和拥有!给华为客服点一万个赞!愿继续力挺华为!
- 陆小曼|彭博社爆料 iPhone 12 新机信息,iPad Air 4 最新渲染图曝光
- 陆小曼|安装简单,抗光出色——菲斯特画卷光学屏S1
- 陆小曼|中国5G“家底”:开通基站48万个,5G终端连接数超1亿
- 陆小曼|王雪红再次兼任HTC执行长 Maitre不满一年这原因离职
- 陆小曼|风扇那点事儿—2020年电风扇最强购买指南
- 陆小曼|仅460流明,米家投影仪青春版2为啥这么香?
- 陆小曼|容联七陌获华为生态伙伴精英赛大奖,最“懂行”智能客服持续高光
- 陆小曼|欧菲光跌停蓝思暴涨!苹果进军5G,传要求生产7500万-8000万部手机
- 陆小曼|一份来自贾扬清的AI青年修炼指南:不存在算法工程师、调参侠没有市场