在进入集群的学习前,我们需要知道什么是高可用、高并发?

高可用:保证redis一直处于可用状态,即使出现了故障,也有备用方案可以保证可用性
高并发:一个redis实例可以支持多达11w的读操作或者8.1w的并发写操作。但是如果对于有更高并发需求的应用来说,我们可以通过‘读写分离’或者通过集群配置解决高并发问题

一、集群介绍:(细节分析) 

  1. redis集群中每个节点都是对等的,无中心结构.
  2. 数据按照slots分布式存储在不同的redis节点上,节点中的数据可共享,可以动态调整数据的分 布
  3. 可拓展性强,可以动态的增删节点,最多可拓展至1000+节点
  4. 集群每个节点通过主备(哨兵模式)可以保证其高可用性

二、集群的搭建:(至少需要六个配置文件)

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

具体修改如图所示:

redis集群支持多大并发 redis集群并发量_redis

4、复制7001端口文件五份并修改端口(yi共六个文件)

redis集群支持多大并发 redis集群并发量_java_02

 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

redis集群支持多大并发 redis集群并发量_java_03

 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端口将值取出。

redis集群支持多大并发 redis集群并发量_端口号_04

 集群配置成功~

四、集群管理: 

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