Redis3之后才支持集群(采用数据分片的方式),这里选择redis版本3.2.3。这里我们用三台机器
192.168.199.128,
192.168.199.129,
192.168.199.130
,每台机器上启两个节点,端口分别为6379,6380。这样就有6个集群节点,redis集群启动之后会默认选择其中三个节点为主节点,其余三个节点分别为三个主节点的从节点。以下是redis集群需要的环境依赖。
ruby:2.3.1
rubygems:2.6.6
redis ruby客户端:3.3.0
1. 安装ruby
1.1 yum install ruby; yum可以装但是可能会是比较老的版本(这个要看源了),对版本有要求的话最好
采用下载源码包,自己编译安装的方式。下载源码包可以用 wget或者通过其他方式下载下来。
1.2 安装
切换到安装文件所在目录
解压安装文件:tar -zxvf ruby-2.3.1.tar.gz; 默认解压到当前目录。
切换到目录ruby-2.3.1:cd ruby-2.3.1
./configure –with-openssl-dir=/usr/local/ssl –prefix=/usr/local
–指定ssl目录,这一步是为了下一步安装redis ruby客户端的时候,设置https的源
–指定安装目录,方便卸载
./make –这一步之后一般提示运行 make test 测试安装环境,如果一切正常,则可继续下一步
./make install
- 安装rubygems包管理器
2.1 这里自己下载源码包
2.1 安装
切换到安装文件所在目录
解压安装文件:tar -zxvf rubygems-2.6.6.tgz
切换到目录 rubygems-2.6.6:cd rubygems-2.6.6
运行安装文件: ruby setup.rb(注意这里之所以可以直接ruby,而不用写路径,是因为ruby的运行
文件放到了/bin下面即/bin/ruby,如果ruby安装在其他目录,可以新建一个软连接 ln -s ruby安装目
录 /bin/ruby,这样在使用ruby的时候就不用写路径了,类似于安装jdk之后配置的环境变量path) - 安装redis ruby客户端
3.1 这里直接利用ruby的包管理器安装:gen install redis –version=3.3.0
这里默认源可能下载缓慢或者根本访问不了,可以设置国内源(taobao有一个但不维
护了)
gem source -a https://gems.ruby-china.org/ –remove https://rubygems.org
(这里直接可以用gen,不需要写路径,是因为gen直接安装到了/bin目录下或者建了软连接) - 安装redis
4.1 解压源码包:tar -zxvf redis-3.2.1.tar.gz
4.2 切换到目录 redis-3.2.1/src
4.3 执行 make MALLOC=libc
4.4 上一步执行成功,执行 make test
4.5 上一步执行成功,执行make install 配置redis
5.1 切换到目录 redis-3.2.1/src, 拷贝两份当前路径下的配置文件 redis.conf到/etc/redis,分别命名为
redis-6379.conf,redis-6380.conf,配置文件内容做如下修改:# 主节点服务端口 port 6379 #开启集群模式 cluster-enabled yes #主节点的配置文件 cluster-config-file nodes-6379.conf #此文件在节点启动之后自动在redis-2.3.1/src目录下生成 #集群节点的互联超时时间,单位是毫秒 cluster-node-timeout 10000 # 默认是开启的,这个配置的作用是在redis没有配置绑定IP和访问密码的时候禁止从其他服务器访问 当前redis服务器,如果安全性要求比较低,可以关闭此配置 protected-mode no
- 启动集群节点
在每台服务器上依次启动两个集群节点,切换到目录 redis-3.2.1/src
依次运行如下命令:
./redis-server /etc/redis/redis-6379.conf &
./redis-server /etc/redis/redis-6380.conf &
&表示后台启动,这样执行以上每条完命令之后,redis服务器端,键入Ctrl C返回主进程就不会关闭
redis服务。 - 步骤6已经分别启动了6个集群节点,但是此时各个节点还是独立的,相互之间并不知道其他节点的存在,也就是说本
质上来讲6个节点还没有组成一个集群,只是开启了集群功能的redis服务。
任选一台服务器,切换到目录redis-2.3.1/src,执行以下命令把其他节点加入到 当前redis集群节点的集群:
./redis-trib.rb create replicas 1 192.168.199.128:6379 192.168.199.128:6380 192.168.199.129:6379 192.168.199.129:6380 192.168.199.130:6379 192.168.199.130:6380
replicas 1 的含义是为每个master节点创建一个slave节点,在这里也就是3个主节点3个从节点
(至于命令redis-trib.rb发出之后,redis内部是如何操作的可以参考redis设计与实现这本书)