在进入集群的学习前,我们需要知道什么是高可用、高并发?
高可用:保证redis一直处于可用状态,即使出现了故障,也有备用方案可以保证可用性
高并发:一个redis实例可以支持多达11w的读操作或者8.1w的并发写操作。但是如果对于有更高并发需求的应用来说,我们可以通过‘读写分离’或者通过集群配置解决高并发问题
一、集群介绍:(细节分析)
- redis集群中每个节点都是对等的,无中心结构.
- 数据按照slots分布式存储在不同的redis节点上,节点中的数据可共享,可以动态调整数据的分 布
- 可拓展性强,可以动态的增删节点,最多可拓展至1000+节点
- 集群每个节点通过主备(哨兵模式)可以保证其高可用性
二、集群的搭建:(至少需要六个配置文件)
1、创建‘cluster-conf’文件夹,用于存放集群(cluster)文件
mkdir cluster-conf
2、去除注释以及空白行并拷贝redis.conf文件,拷贝的新文件移动到cluster-conf文件夹中,并重名为‘redis-7001.conf’
[root@localhost redis-5.0.7]# cat redis.conf | grep -v '#'|grep -v "^$" > cluster-conf/redis-7001.conf
3、修改redis-7001.conf配置文件(端口以及集群配置)
[root@localhost cluster-conf]# vim redis-7001.conf
添加的内容:
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000
具体修改如图所示:
4、复制7001端口文件五份并修改端口(yi共六个文件)
5、启动这六个实例
[root@localhost cluster-conf]# redis-server redis-7001.conf &
[root@localhost cluster-conf]# redis-server redis-7002.conf &
[root@localhost cluster-conf]# redis-server redis-7003.conf &
[root@localhost cluster-conf]# redis-server redis-7004.conf &
[root@localhost cluster-conf]# redis-server redis-7005.conf &
[root@localhost cluster-conf]# redis-server redis-7006.conf &
6、查看启动的与redis相关的实例(查看六个实例是否启动)
[root@localhost cluster-conf]# ps -ef|grep redis
7、启动集群
[root@localhost cluster-conf]# redis-cli --cluster create 192.168.85.129:7001 192.168.85.129:7002 192.168.85.129:7003 192.168.85.129:7004 192.168.85.129:7005 192.168.85.129:7006 --cluster-replicas 1
8、以集群的方式启动redis客户端(连接集群)
[root@localhost cluster-conf]# redis-cli -p 7001 -c
三、测试
进入端口为7001redis实例,进行值的存储,通过执行结果发现,它将值存到了7003端口,当我们进行取值的时候,他又从7003端口将值取出。
集群配置成功~
四、集群管理:
1、如果集群启动失败,等待节点加入;
- 云服务器检查安全组是否放行redis实例端口,以及+10000的端口
- linux防火墙是否放行redis服务(关闭防火墙)
- linux状态(top)--更换云主机操作系统
- redis配置文件错误
2、创建集群
redis-cli --cluster create ip地址:端口号...
3、查看集群状态
redis-cli --cluster info ip地址:端口号
4、平衡节点的数据槽的数量(使其效率基本一致)
redis-cli --cluster rebalance --cluster-threshold ip地址:端口号
5、迁移节点槽
redis-cli --cluster reshard ip在地址:端口号
6、删除节点
redis-cli --cluster del-node ip地址:端口号 ID