因个人机配置不高,故搭建伪分布式集群
1. 安装redis
(1)、安装wget yum install wget
(2)、安装C/C++环境 yum install gcc-c++ libstdc++-devel
(3)、创建目录/opt/redis-cluster存放集群配置文件以及安装文件
(4)、创建redis安装目录/opt/redis-cluster/redis
(5)、ftp上传redis-cluster 目录到/opt/redis-cluster
(6)、 redis-cluster目录下下载redis4.0
下载命令:wget http://download.redis.io/releases/redis-4.0.6.tar.gz
(7)、解压redis并安装
解压命令:tar -xvf redis-4.0.6.tar.gz
安装命令:make && make perfix=/opt/redis-cluster/redis install
安装完成之后查看/usr/local/bin
注意:bin的所属目录应该是perfix指定目录,但是不知为何没有,跟redis版本或者操作系统有关系,make语法是正确的,忽略该问题无关紧要,主要观察安装目录中是否有 redis-sentinel哨兵启动脚本即可
2、安装ruby编译环境
yum -y install ruby rubygems
3、redis-cluster 目录下安装 redis gem 模块
redis-3.3.0.gem 需要自行下载到 /opt/redis-cluster 目录下
命令:gem install --local redis-3.3.0.gem
4、创建文件目录、主从节点并匹配端口(已完成)
(1)、redis集群 4.x版本
物理节点1个
指定3个主节点端口为7000、7001、7002
对应的3个从节点端口为7003、7004、7005
创建6个对应目录
(2)、创建配置文件 redis.conf(在7000~7005六个目录下分别创建)
(3)、redis.conf文件内容在(7000~7005六个目录下分别填写)
cluster-enabled yes
port 7000
daemonize yes
bind 192.168.164.24
protected-mode no
(4)、启动6个redis实例,分别使用各自的redis.conf
cd /opt/redis-cluster/redis/700*
命令:redis-server redis.conf
5、创建集群,槽位认领
(1)、在安装目录下的src中,找到 redis-trib.rb 这是rubby脚本执行程序,完成redis4.0集群创建
注意:修改redis.conf配置文件
注释掉 #bind 127.0.0.1
修改 protected mode no
./redis-trib.rb create --replicas 1 192.168.164.24:7000 192.168.164.24:7001 192.168.164.24:7002 192.168.164.24:7003 192.168.164.24:7004
执行结果:
[root@job-dangdai-node-4 src]# ./redis-trib.rb create --replicas 1 192.168.164.24:7000 192.168.164.24:7001 192.168.164.24:7002 192.168.164.24:7003 192.168.164.24:7004 192.168.164.24:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.164.24:7000
192.168.164.24:7001
192.168.164.24:7002
Adding replica 192.168.164.24:7003 to 192.168.164.24:7000
Adding replica 192.168.164.24:7004 to 192.168.164.24:7001
Adding replica 192.168.164.24:7005 to 192.168.164.24:7002
M: aa63429c3f111e32c428251d4d528c9ba5604cd8 192.168.164.24:7000
slots:0-5460 (5461 slots) master
M: 77da4aba3403e643004a9026eedda0a76aafe341 192.168.164.24:7001
slots:5461-10922 (5462 slots) master
M: 3e715e88e3607d1fbf3e141bb8b864ae0d7e3d53 192.168.164.24:7002
slots:10923-16383 (5461 slots) master
S: 5fd5c032eb7f4a527b71734241c64c97d8baf365 192.168.164.24:7003
replicates aa63429c3f111e32c428251d4d528c9ba5604cd8
S: b9f4d049a7053581315f18d5d1450be3f8cf0e60 192.168.164.24:7004
replicates 77da4aba3403e643004a9026eedda0a76aafe341
S: 834ead62de6e56865505235ff272704a7f76b900 192.168.164.24:7005
replicates 3e715e88e3607d1fbf3e141bb8b864ae0d7e3d53
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.164.24:7000)
M: aa63429c3f111e32c428251d4d528c9ba5604cd8 192.168.164.24:7000
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 834ead62de6e56865505235ff272704a7f76b900 192.168.164.24:7005
slots: (0 slots) slave
replicates 3e715e88e3607d1fbf3e141bb8b864ae0d7e3d53
S: 5fd5c032eb7f4a527b71734241c64c97d8baf365 192.168.164.24:7003
slots: (0 slots) slave
replicates aa63429c3f111e32c428251d4d528c9ba5604cd8
M: 3e715e88e3607d1fbf3e141bb8b864ae0d7e3d53 192.168.164.24:7002
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: b9f4d049a7053581315f18d5d1450be3f8cf0e60 192.168.164.24:7004
slots: (0 slots) slave
replicates 77da4aba3403e643004a9026eedda0a76aafe341
M: 77da4aba3403e643004a9026eedda0a76aafe341 192.168.164.24:7001
slots:5461-10922 (5462 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.
客户端连接
redis-cli -p 7000 -c
进行简单测试,如果没有问题,说明集群搭建OK。。。。。。
集群节点关闭命令
redis-cli -c -p 7000 shutdown