1.安装ruby
本次集群使用redis-4.0.0/src/redis-trib.rb脚本,而该脚本使用ruby语言,故要先安装ruby。
Root用户安装,非编译安装Ruby只能安装在/opt目录下,将ruby-dist-2.4.0.tar.gz拷贝到/opt目录下。
解压:
[root@localhost opt]# tar -zxf ruby-dist-2.4.0.tar.gz
配置Ruby环境变量:
[root@localhost opt]# echo "PATH=/opt/ruby/bin:$PATH" >>/etc/profile
[root@localhost opt]# echo "export PATH" >>/etc/profile
[root@localhost opt]# source /etc/profile
检查版本:
[root@localhost opt]# ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
[root@localhost opt]# gem -v
2.6.8
2.集群命令
集群命令语法:
redis-4.0.0/src/redis-trib.rb create –replicas 主从比例 IP:端口 IP:端口 IP:端口 ...
3.举例搭建集群
以三主三从的模式搭建,共6个节点。
3.1.端口规划
主数据库:6480、6481、6482
从数据库:6483、6484、6485
3.2.节点配置
将每个节点的配置文件放到conf目录下:
集群相关配置如下:
#开启集群 yes
cluster-enabled yes
#节点自动配置文件(不是我们对redis的配置),节点每次发生更改时自动保留群集配置的文件
cluster-config-file nodes-6380.conf
#节点超时时间,超过此时间则任务其下线,将由其从属设备进行故障切换
cluster-node-timeout 10000
请注意修改相应端口号。
3.3.执行集群脚本
首先确保每个节点按照3.2的配置开启。
然后进入src,执行集群命令:
./redis-trib.rb create --replicas 1 127.0.0.1:6480 127.0.0.1:6481 127.0.0.1:6482 127.0.0.1:6483 127.0.0.1:6484 127.0.0.1:6485
输入 yes
Can I set the above configuration? (type 'yes' to accept): yes
3.4.客户端操作
客户端查看集群信息:
127.0.0.1:6480> cluster nodes
数据保存于查询:
直接连接集群获取数据的话会提醒你到相应的节点去操作,原因是集群将数据按照一定的规则将不同的key放到不同的节点槽(slot)去保存。
客户端连接时候要加上参数【-c】进行重定向:
[redis@localhost redis-4.0.0]$ redis-cli -c -p 6480
【END】