Redis集群方案并配置
1、Redis-cluster架构图
Redis-cluster
架构图如下所示。
首先上半图是一个有向图,所有的redis
节点彼此互联ping-pong
。内部使用二进制协议优化传输速度和带宽。
节点的fail
是通过集群中超过半数的节点检测有效时整个集群才生效。
客户端与redis
节点直连。
整个Redis
集群中有内置16384个哈希槽,当需要在Redis
集群中放置一个key-value
值时,Redis
会对key
使用crc16
算法算出一个结果并对16384求余。这样每一个key能够对应在这之中的哈希槽,并且Redis
会根据节点数量大致均等的将哈希槽映射到不同的节点。
2、集群搭建步骤
2.1 Linux下安装redis
2.2 创建集群目录
[root@localhost redis]# mkdir redis-cluster
2.3 设置节点目录
搭建集群至少需要3台主机,如果每台主机都需要配置一个从机时就需要六台机器。即创建6个redis
实例。端口号:7001~7006。
本文也是设置7001~7006六个端口的redis
来作为实操。
首先尝试创建一个redis-cluster
文件包,里面有7001~7006六个redis
机器。
2.4 设置7001中conf文件
如上图所示。首先配置集群属性下的cluster-enable yes
,其次配置其对应的端口号即可。然后复制7002~7006文件到同一个路径下。
接下来依次修改后续文件下的conf
文件。因为复制7001的文件,所以直接修改端口号即可。
2.5 编写脚本
在集群文件下编写一个自定义shell
脚本。
[root@localhost redis-cluster]# vi startall.sh
按照如下图编辑文件即可(不要提前运行后端开启redis)
修改其中的权限后
[root@localhost redis-cluster]# chmod u+x startall.sh
启动所有的实例,启动后如下。
2.6 创建集群
[root@localhost bin]# ./redis-cli --cluster create 192.168.91.129:7001 192.168.91.129:7002 192.168.91.129:7003 192.168.91.129:7004 192.168.91.129:7005 192.168.91.129:7006 --cluster-replicas 1
大致格式如下:
redis-cli --cluster create ip:port --cluster-replicas 1
随后选择yes
。
回到了bin
目录。
2.7 打开7001端口选择集成连接
这里面当设置一个username
时,便提示说明存放到了7003端口中。
2.8 查看集群和节点信息
最后通过输入以下指令查看集群信息
192.168.91.129 > cluster info
192.168.91.129 > cluster nodes
至此,我们的redis
集群设置大功告成。