Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群,这里我搭建了三个节点都为master。
首先我们进入虚拟机中,我们需要下载好redis5.0.0版本及以上的redis安装包(5.0.0版本以下需要用到ruby,由于ruby有版本限制问题可能还弄不了比较麻烦),将其解压到我们的工作目录下,这边建议直接从官网下载压缩包再通过shell工具进行上传安装,用docker pull拉取镜像可能会比较慢。
1.安装redis:
1、安装gcc
-
yum install gcc
2、下载redis-5.0.7.tar.gz
3、把下载好的redis-5.0.8.tar.gz放在usr/local文件夹下,并解压
-
tar zxvf redis-5.0.7.tar.gz
-
cd redis-5.0.7
4、进入到解压好的redis-5.0.7目录下,进行编译与安装
-
make & make install
2.将其解压安装之后,我们开始搭建redis集群。
1.我们需要修改需要建立一个存放conf文件的目录用来存放三个集群节点的redis.conf文件
我将redis放在了/usr/local目录下,如图:
2.当我们创建好之后我们进入之前安装好的redis中将redis.conf文件复制到刚刚创建的目录中
我创建了redis-node1,redis-node-2,redis-node-3分别在里面存储redis.conf文件(appendonly.aof和nodes-6379.conf是集群启动起来之后生成的文件),如图:
3.当把redis.conf文件复制好以后我们需要改配置文件(2,4,8必须设置,端口必须不同,示例6379,6380,6381)
-
daemonize yes(设置为守护线程,可以在后台启动)
-
port 6379(分别对每个机器的端口号进行设置,6380,6381)
-
dir /usr/local/redis-cluster/6379/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)
-
cluster-enabled yes(启动集群模式)
-
cluster-config-file nodes-6379.conf(集群节点信息文件,这里63xx最好和port对应上)
-
cluster-node-timeout 5000(设置节点超时时间的)
-
# bind 127.0.0.1(默认将其注释掉#,不用管)
-
protected-mode no (关闭保护模式)
-
appendonly yes 设置密码的话需要增加如下配置:
-
requirepass xxx (设置redis访问密码)
-
masterauth xxx (设置集群节点间访问密码,跟上面一致)
4.配置完了之后,我们需要启动redis服务
进入一开始安装好的redis目录的src中利用
redis-server /usr/local/redis-cluster/redis-node-1/redis.conf
redis-server /usr/local/redis-cluster/redis-node-2/redis.conf
redis-server /usr/local/redis-cluster/redis-node-3/redis.conf
这三个命令打开redis服务
然后我们通过 ps -ef | grep redis 这个命令来查看redis服务启动成功没,当显示出这三个不同的redis进程时就已经启动成功了,如图:
5.接下来我们需要创建redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)
我们继续在src目录下使用
./redis-cli --cluster create --cluster-replicas 0 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381
这个命令来创建三个redis集群(cluster-replicase 0 这个参数代表不分配从节点,只有三个master主节点),如图:
6.当我们创建好了可以进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表
如图:
cluster info:
cluster nodes:
到这,redis的集群搭建就完成了,我们利用cluster搭建了三个主节点,当我们需要搭建三主三从也是一样的操作,只需要修改配置文件和在创建集群时把 --cluster-replicas后的0设置为1即可。