说明:要让集群正常工作至少需要3个主节点,在这里我创建了6个redis节点,其中三个为主节点,三个为从节点,我用了三台虚拟机(CentOS6.0),一台虚拟机两个节点,对应的redis节点的ip和端口对应关系如下:
192.168.43.201:7001
192.168.43.201:7002
192.168.43.202:7003
192.168.43.202:7004
192.168.43.203:7005
192.168.43.203:7006
第一步:准备redis所需的环境(需要ruby环境)(三台机器都需要执行此步骤)
1、安装ruby环境
2、安装ruby的redis
第二步:下载redis-3.2.6.tar.gz(三台机器都需要执行此步骤)
1、首先创建安装redis的目录,(我的目录是 /app/redis/)
2、进入安装的目录后下载安装包(或者自己提前将安装包下好,然后传进去)
3、解压安装包
4、进入解压后的目录进行编译
5、再执行 make PREFIX=${Redis安装目录} install
6、在第一台机器上执行以下操作
7、在第二台机器上执行以下操作
8、在第三台机器上执行以下操作
第三步:修改配置文件
5、改动以下六个就行
port 7001
#端口7001,7002,7003,7004,7005,7006
bind 192.168.43.201
#默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes
#redis后台运行
cluster-enabled yes
#开启集群 把注释#去掉
cluster-config-file nodes_7001.conf
#集群的配置 配置文件首次启动自动生成 7001,7002,7003,7004,7005,7006
cluster-node-timeout 15000
#请求超时 默认15秒,可自行设置
appendonly yes
不同机器上的配置文件只需端口号不同即可
第四步:启动redis
第五步:创建集群
1、进入src目录执行下面的命令
2、然后出现如下内容就表示安装成功了
第六步:测试集群
1、集群的链接redis-cli -h host -c -p port
完毕!!!!!!!!!!!!
192.168.43.201:7001
192.168.43.201:7002
192.168.43.202:7003
192.168.43.202:7004
192.168.43.203:7005
192.168.43.203:7006
第一步:准备redis所需的环境(需要ruby环境)(三台机器都需要执行此步骤)
1、安装ruby环境
yum -y install zlib ruby rubygems
2、安装ruby的redis
gem install redis
注意:如果失败,则升级ruby安装的软件(依次执行如下命令)
gem update --system
gem update
第二步:下载redis-3.2.6.tar.gz(三台机器都需要执行此步骤)
1、首先创建安装redis的目录,(我的目录是 /app/redis/)
2、进入安装的目录后下载安装包(或者自己提前将安装包下好,然后传进去)
wget http://download.redis.io/releases/redis-3.2.6.tar.gz
3、解压安装包
tar xzf redis-3.2.6.tar.gz
4、进入解压后的目录进行编译
cd redis-3.6.2
make
5、再执行 make PREFIX=${Redis安装目录} install
如我的是:make PREFIX=/app/redis/redis-3.2.6 install
6、在第一台机器上执行以下操作
[root@mini-01 redis-3.2.6]# mkdir redis_cluster
[root@mini-01 redis-3.2.6]# cd redis-cluster/
[root@mini-01 redis-cluster]# mkdir 7001
[root@mini-01 redis-cluster]# mkdir 7002
7、在第二台机器上执行以下操作
[root@mini-02 redis-3.2.6]# mkdir redis_cluster
[root@mini-02 redis-3.2.6]# cd redis-cluster/
[root@mini-02 redis-cluster]# mkdir 7003
[root@mini-02 redis-cluster]# mkdir 7004
8、在第三台机器上执行以下操作
[root@mini-03 redis-3.2.6]# mkdir redis_cluster
[root@mini-03 redis-3.2.6]# cd redis-cluster/
[root@mini-03 redis-cluster]# mkdir 7005
[root@mini-03 redis-cluster]# mkdir 7006
第三步:修改配置文件
1、vi /etc/profile
2、添加:export REDIS_HOME=/apps/redis/redis-3.2.6
export PATH=$PATH:$REDIS_HOME/bin
3、保存退出
source /etc/profile
4、vi redis.conf
5、改动以下六个就行
port 7001
#端口7001,7002,7003,7004,7005,7006
bind 192.168.43.201
#默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes
#redis后台运行
cluster-enabled yes
#开启集群 把注释#去掉
cluster-config-file nodes_7001.conf
#集群的配置 配置文件首次启动自动生成 7001,7002,7003,7004,7005,7006
cluster-node-timeout 15000
#请求超时 默认15秒,可自行设置
appendonly yes
不同机器上的配置文件只需端口号不同即可
第四步:启动redis
[root@mini-01 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7001/redis.conf
[root@mini-01 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7002/redis.conf
[root@mini-02 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7003/redis.conf
[root@mini-02 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7004/redis.conf
[root@mini-03 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7005/redis.conf
[root@mini-03 redis-3.2.6]# redis-server /apps/redis/redis-3.2.6/redis-cluster/7006/redis.conf
第五步:创建集群
1、进入src目录执行下面的命令
[root@mini-01 src]# ./redis-trib.rb create --replicas 1 192.168.43.201:7001 192.168.43.201:7002 192.168.43.202:7003 192.168.43.202:7004 192.168.43.203:7005 192.168.43.203:7006
2、然后出现如下内容就表示安装成功了
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.43.203:7005
192.168.43.202:7003
192.168.43.201:7001
Adding replica 192.168.43.202:7004 to 192.168.43.203:7005
Adding replica 192.168.43.203:7006 to 192.168.43.202:7003
Adding replica 192.168.43.201:7002 to 192.168.43.201:7001
M: e34baadeeb2050b3e105b09570ae66e5a8218759 192.168.43.201:7001
slots:10923-16383 (5461 slots) master
S: 290d94cbb36d658a09cef6528a076c0c2e93be2c 192.168.43.201:7002
replicates e34baadeeb2050b3e105b09570ae66e5a8218759
M: 62d4498898fc777d00fd11989a020d77ce094d46 192.168.43.202:7003
slots:5461-10922 (5462 slots) master
S: 10332ce3ab19f2ddc06f19f0be9da32dcfbbe968 192.168.43.202:7004
replicates 041d54f386ab3d85769280cd4dcf3b6c2cc3bd13
M: 041d54f386ab3d85769280cd4dcf3b6c2cc3bd13 192.168.43.203:7005
slots:0-5460 (5461 slots) master
S: 548aa8353291df4c382930ebee3f222b885302c7 192.168.43.203:7006
replicates 62d4498898fc777d00fd11989a020d77ce094d46
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.43.201:7001)
M: e34baadeeb2050b3e105b09570ae66e5a8218759 192.168.43.201:7001
slots:10923-16383 (5461 slots) master
1 additional replica(s)
M: 62d4498898fc777d00fd11989a020d77ce094d46 192.168.43.202:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 290d94cbb36d658a09cef6528a076c0c2e93be2c 192.168.43.201:7002
slots: (0 slots) slave
replicates e34baadeeb2050b3e105b09570ae66e5a8218759
S: 548aa8353291df4c382930ebee3f222b885302c7 192.168.43.203:7006
slots: (0 slots) slave
replicates 62d4498898fc777d00fd11989a020d77ce094d46
S: 10332ce3ab19f2ddc06f19f0be9da32dcfbbe968 192.168.43.202:7004
slots: (0 slots) slave
replicates 041d54f386ab3d85769280cd4dcf3b6c2cc3bd13
M: 041d54f386ab3d85769280cd4dcf3b6c2cc3bd13 192.168.43.203:7005
slots:0-5460 (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
第六步:测试集群
1、集群的链接redis-cli -h host -c -p port
[root@mini-01 redis-3.2.6]# redis-cli -h 192.168.43.201 -c -p 7001
192.168.43.201:7001> set "xby" 123
OK
192.168.43.201:7001> keys *
1) "xby"
192.168.43.201:7001> get "xby"
"123"
完毕!!!!!!!!!!!!