注意:这里使用的redis版本是5.0.3,因为从5.0.x版本开始创建cluster的方式改变了。
本案例的环境时CentOS-7-x86_64-DVD-1810.iso安装的虚拟机,干净的,无污染的。
进入正题:
第一步,下载redis的源码, wget http://download.redis.io/releases/redis-5.0.3.tar.gz,通常都是下载到root用户的当前目录下,/root;
第二步,解压下载好的压缩文件,命令:tar xzf redis-5.0.3.tar.gz
第三步,安装编译工具 sudo yum install gcc tcl,新的虚拟机没有这些环境,需要安装。
第四步,编译安装,make MALLOC=libc && make install,这里make后面跟了一个参数,这也是安装过程中需要的,没有会报错。
至此,第四步顺利通过后,就已经编译安装结束。
接下来,搭建redis的cluster环境。同样是在这个虚拟机上搭建,环境还是如此的干净。
第一步,创建最少6个节点的目录(为啥最少是6个?这个是redis的cluster选举机制决定的,详情看redis的官网说明),我这里是在/opt目录下创建了cluster目录,并创建了6个子目录,目录名为端口号,分别是7001,7002,7003,7004,7005,7006
第二步,拷贝redis源码目录下的redis.conf文件到新创建的节点目录下,就是7001...7006的目录下;
第三步,修改每个节点的配置文件redis.conf,修改的内容如下:
port 7000 //端口7000,7002,7003
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
这里主要是修改cluster相关的参数设置。涉及到的pidfile以及config-file,可以自定义指定目录。
第四步,修改完所有配置文件后,使用命令启动每个节点的实例:
redis-server /opt/cluster/7001/redis.conf
依次启动6个实例。
第五步,创建集群,注意这里和以前不同,以前使用redis-trib.rb(ruby程序)创建的,从5.0版本后直接使用redis-cli命令就可以创建了。这里的IP是在配置文件中bind参数后指定的ip。
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
执行完后,最简单的redis cluster创建完毕。