Redis集群-Cluster模式
我理解的此模式与哨兵模式根本区别:
哨兵模式采用主从复制模式,主和从数据都是一致的、全量数据;
Cluster模式采用数据分片存储,对每个 key 计算 CRC16 值,然后对 16384 取模,可以获取 key 对应的 hash slot,可以这么理解:电脑硬盘分了很多个区,每个分区存储内容都不一样,而每个分区都会有哨兵机制进行监控容灾,每个分区的主分区挂了,对应的从分区会升级为主分区。
此模式优点:可以横向扩展, 只需连接集中某几个节点即可,避免了主从哨兵模式存储瓶颈
===========================================================
根据上篇安装完单机Redis后,下面对单机进行集群
一、将解压后redis文件夹中的redis.conf复制到conf文件夹中(conf文件夹自己随意找个目录创建,我就创建到和解压后redis统计目录中了)
二、因为要起六个redis服务,所以复制将redis.conf复制六次,并改名(端口也可自定义,名称不一定非要这么起,目的是为了区分,官网是每个端口创建了一个文件夹)
三、修改每一个复制出来的文件
port 7000 //这个端口等于每个文件名字的端口
cluster-enabled yes //开启集群模式
cluster-config-file nodes-7001.conf //每个节点的配置文件,我就生成到redis/src下了
cluster-node-timeout 5000 //节点失效检测时间
appendonly yes //使用AOF持久化
bind 192.168.1.236 127.0.0.1 //修改bindIp,默认是127.0.0.1 否则ssh无法连接
pidfile /var/run/redis_7000.pid //上一篇搭建单机Redis时,配置了daemonize yes后台运行,所以每个配置文件都要改名字
protected-mode no //关闭保护模式,否则ssh无法连接(可不设置,我为了本地方便)
daemonize yes //后台运行
appendfilename "appendonly_7000.aof" //持久化文件
四、依次启动redis
查看一下是否都启动了,如果没起来检测redis配置文件
五、执行集群分配
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
--cluster-replicas 1
(--cluster-replicas 1 这个代表每一个 master有一个slave ,写2的话就是有两个slave)
六、登录某一个节点测试,这时就可以使用项目或者Redis Desktop Manager等客户端连接了
redis-cli -c -p 7000
七、重新分配集群
将每个节点下aof、rdb、nodes.conf本地备份文件删除,然后重新执行第五步