redis5集群搭建
装了三个redhat7,每个分配2G内存,关闭了防火墙和selinux 而且配置的网络环境为nat转发,并且改了静态ip三台的ip分别为:192.168.101.128,192.168.101.129,192.168.101.127保证三台机子可以互相ping通,并且跟宿主机可以ping通
三台虚拟机,三主三从,每个机子部署一个主master还有一个备的slaver,然后把三个机子整合为一个cluster
一.安装redis
1.下载redis
打开redis官网 https://redis.io/ 下载最新版
1.cd /usr/local/src
2. wget http://download.redis.io/releases/redis-5.0.2.tar.gz
2.编译安装redis
需要先安装gcc编译器
echo "/dev/cdrom /mnt/ iso9660 defaults 0 0" >> /etc/fstab
mount -av
yum install gcc-c++ -y
yum -y install gcc
解压redis包 然后编译安装
tar -zxvf redis-5.0.2.tar.gz
cd redis-5.0.2
make && make install
同样的操作去给另外两条机器安装redis
二. 创建节点
1. 我选择在/usr/local下创建了一个redis-cluster文件夹用于存放redis节点的配置文件(redis.conf)
mkdir /usr/local/redis-cluster
cd /usr/local/redis-cluster
mkdir 9000 9001
cp /usr/local/redis-5.0.2/redis.conf /usr/local/redis-cluster/9000
cp /usr/local/redis-5.0.2/redis.conf /usr/local/redis-cluster/9001
2.修改配置文件(9000和9001文件夹下各一个配置文件 都需要修改,9001参照9000的配置只需要把端口改了)
daemonize yes //守护线程 ,后台运行redis
pidfile /var/run/redis_9000.pid
port 9000 //每个节点的端口号
cluster-enabled yes //开启集群模式
cluster-config-file nodes_9000.conf //集群节点的配置
cluster-node-timeout 5000 //节点请求超时时间
appendonly yes //aof日志每一个操作都记录模式
bind 0.0.0.0 //开启网络,保证其他网络可以访问该机子
三. 分发该配置到另外两台机器
我选择了使用scp命令进行文件的分发。。真的很好用。
scp -r /usr/local/redis-cluster 192.168.153.129:/usr/local
然后输入root密码。
scp -r /usr/local/redis-cluster 192.168.153.130:/usr/local
然后输入root密码。
四. 启动每台机器上的两个节点
cd /usr/loacl/src/ redis-server /usr/local/redis-cluster/9000/redis.conf redis-server /usr/local/redis-cluster/9001/redis.conf
同样的操作去另外两条机器启动剩下的四个节点。
五. 创建集群
redis5.0真心舒服 集群创建方式改为了C编写的redis-cli创建,不用再安装麻烦的ruby(上午用的redis 4.0安装,太麻烦。需要安装一些库,而且redhat7 yum -y install ruby 默认安装的ruby版本是2.0 而gem install redis 需要的ruby最低2.2上网看了些资料 真的懒得折腾了 5.0 !!!舒服!!!)了。
cd /usr/local/src/redis-5.0.2
redis-cli --cluster create 192.168.153.128:9000 192.168.153.129:9000 192.168.153.130:9000 192.168.153.128:9001 192.168.153.129:9001 192.168.153.130:9001 --cluster-replicas 1
//创建集群,--cluster-replicas 1 指定从库数量1
//创建顺序三个主,三个从,前面三个是主后面三个是从
启动后,可看到成功信息,如下:
[root@hadoop01 local]# redis-cli --cluster create 192.168.153.128:9000 192.168.153.129:9000 192.168.153.130:9000 192.168.153.128:9001 192.168.153.129:9001 192.168.153.130:9001 --cluster-replicas 1 >>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 192.168.153.129:9001 to 192.168.153.128:9000 Adding replica 192.168.153.128:9001 to 192.168.153.129:9000 Adding replica 192.168.153.130:9001 to 192.168.153.130:9000 >>> Trying to optimize slaves allocation for anti-affinity [OK] Perfect anti-affinity obtained! M: 274618a39848cd3e7c8fb0476703ac663eb4f098 192.168.153.128:9000 slots:[0-5460] (5461 slots) master M: b6eef47101d34c6f6905ea65467186051374f38d 192.168.153.129:9000 slots:[5461-10922] (5462 slots) master M: 76123e02af1a85ce730e12431a8fdc8aa28a0b2c 192.168.153.130:9000 slots:[10923-16383] (5461 slots) master S: 90734168c2e428ad1cfd70ce2b9506708b6f548b 192.168.153.128:9001 replicates b6eef47101d34c6f6905ea65467186051374f38d S: 3c17d33fd0270a711e3e00c1d95f4aa16ec2cc88 192.168.153.129:9001 replicates 76123e02af1a85ce730e12431a8fdc8aa28a0b2c S: 067da7a5d5e6b63b5617b18cf389ffa153b48c09 192.168.153.130:9001 replicates 274618a39848cd3e7c8fb0476703ac663eb4f098 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.153.128:9000) M: 274618a39848cd3e7c8fb0476703ac663eb4f098 192.168.153.128:9000 slots:[0-5460] (5461 slots) master 1 additional replica(s) M: 76123e02af1a85ce730e12431a8fdc8aa28a0b2c 192.168.153.130:9000 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: 3c17d33fd0270a711e3e00c1d95f4aa16ec2cc88 192.168.153.129:9001 slots: (0 slots) slave replicates 76123e02af1a85ce730e12431a8fdc8aa28a0b2c M: b6eef47101d34c6f6905ea65467186051374f38d 192.168.153.129:9000 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 067da7a5d5e6b63b5617b18cf389ffa153b48c09 192.168.153.130:9001 slots: (0 slots) slave replicates 274618a39848cd3e7c8fb0476703ac663eb4f098 S: 90734168c2e428ad1cfd70ce2b9506708b6f548b 192.168.153.128:9001 slots: (0 slots) slave replicates b6eef47101d34c6f6905ea65467186051374f38d [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
redis集群搭建完毕。
(创建集群的时候,报了一个错,到129没有route,原因是忘了关129的防火墙,执行iptables -F setenforce 0.后可正常创建)
至此。。redis集群搭建完毕了。。然后就是jedis来连接redis集群了
开发我不会,暂时先放一放
浙公网安备 33010602011771号