部署环境:VM虚拟机 操作系统:CentOS-6.8-x64
IP地址:192.168.31.91
Redis软件版本:redis-3.0.6.tar.gz
作者:惟净(刘琪)
开始部署Redis+Cluster
[iyunv@localhost ~]# yum groupinstall "开发工具" -y
[iyunv@localhost ~]# chkconfig iptables off
[iyunv@localhost ~]# chkconfig --list iptables
iptables 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[iyunv@localhost ~]# yum install wget vim -y
[iyunv@localhost ~]# cat /etc/selinux/config | head -7 | tail -1 | sed -i s@enforcing@disabled@g /etc/selinux/config
[iyunv@localhost ~]# hostname Redis
[iyunv@localhost ~]# cat /etc/sysconfig/network | sed -i s@localhost.localdomain@Redis@g /etc/sysconfig/network
[iyunv@localhost ~]# reboot
[iyunv@Redis src]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
[iyunv@Redis src]# tar xvzf redis-3.0.6.tar.gz
[iyunv@Redis src]# mv redis-3.0.6 /usr/local/redis
[iyunv@Redis src]# cd /usr/local/redis/
[iyunv@Redis redis]# make
[iyunv@Redis redis]# make install
[iyunv@Redis redis]# mkdir /usr/local/cluster
[iyunv@Redis redis]# cd /usr/local/cluster/
[iyunv@Redis cluster]# mkdir 7000 7001 7002 7003 7004 7005
[iyunv@Redis cluster]# cp /usr/local/redis/redis.conf /usr/local/cluster
[iyunv@Redis cluster]# cd /usr/local/cluster/
[iyunv@Redis cluster]# touch /usr/local/cluster/redis.conf
重点说明:下面这个第一行“port 7000”?因为创建了7000 7001 7002 7003 7004 7005 这6个,所以“port 7000”要根据不同的数字更改端口号!
[iyunv@Redis cluster]# cat >/usr/local/cluster/redis.conf<<EOF
> port 7000
> daemonize yes
> cluster-enabled yes
> cluster-config-file nodes-6379.conf
> cluster-node-timeout 5000
> appendonly yes
> EOF
重点说明:cp复制完毕后,一定要更改各自的端口号呀!
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7000/
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7001/
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7002/
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7003/
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7004/
[iyunv@Redis cluster]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7005/
[iyunv@Redis 7000]# pwd
/usr/local/cluster/7000
[iyunv@Redis 7000]# redis-server redis.conf
[iyunv@Redis 7001]# redis-server redis.conf
[iyunv@Redis 7001]# pwd
/usr/local/cluster/7001
[iyunv@Redis cluster]# cd 7002/
[iyunv@Redis 7002]# pwd
/usr/local/cluster/7002
[iyunv@Redis 7002]# redis-server redis.conf
[iyunv@Redis cluster]# cd 7003/
[iyunv@Redis 7003]# pwd
/usr/local/cluster/7003
[iyunv@Redis 7003]# redis-server redis.conf
[iyunv@Redis cluster]# cd 7004/
[iyunv@Redis 7004]# pwd
/usr/local/cluster/7004
[iyunv@Redis 7004]# redis-server redis.conf
[iyunv@Redis cluster]# cd 7005/
[iyunv@Redis 7005]# pwd
/usr/local/cluster/7005
[iyunv@Redis 7005]# redis-server redis.conf
重要说明:如果出现下面这些端口号进程?说明上面所有的配置成功!
[iyunv@Redis 7004]# ps aux | grep redis
root 4872 0.0 0.3 137452 7536 ? Ssl 00:23 0:00 redis-server *:7000 [cluster]
root 4904 0.0 0.3 137452 7532 ? Ssl 00:30 0:00 redis-server *:7005 [cluster]
root 4912 0.0 0.3 137452 7532 ? Ssl 00:30 0:00 redis-server *:7001 [cluster]
root 4916 0.0 0.3 137452 7532 ? Ssl 00:30 0:00 redis-server *:7002 [cluster]
root 4920 0.0 0.3 137452 7532 ? Ssl 00:31 0:00 redis-server *:7003 [cluster]
root 4924 0.0 0.3 137452 7532 ? Ssl 00:31 0:00 redis-server *:7004 [cluster]
root 4929 0.0 0.0 103324 892 pts/0 S+ 00:31 0:00 grep redis
[iyunv@Redis cluster]# yum install ruby ruby-devel rubygems rpm-build -y
[iyunv@Redis cluster]# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
[iyunv@Redis cluster]# rpm -qa | grep ruby
ruby-libs-1.8.7.374-4.el6_6.x86_64
ruby-irb-1.8.7.374-4.el6_6.x86_64
rubygems-1.3.7-5.el6.noarch
ruby-1.8.7.374-4.el6_6.x86_64
ruby-rdoc-1.8.7.374-4.el6_6.x86_64
ruby-devel-1.8.7.374-4.el6_6.x86_64
[iyunv@Redis cluster]# gem install redis
[iyunv@Redis cluster]# cd /usr/local/redis/src/
[iyunv@Redis src]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
Can I set the above configuration? (type 'yes' to accept): yes
Redis+Cluster主从测试
[iyunv@Redis src]# redis-cli -c -p 7000
127.0.0.1:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:201
cluster_stats_messages_received:201
127.0.0.1:7000>
127.0.0.1:7000> cluster nodes
1e12744b4c980c405f4bff51f78d7ac3cef16ac5 127.0.0.1:7003 slave bfb90bd367a466739f264a6115d170d232de9b65 0 1486571736432 4 connected
2a280c057c697b63fcbdca65697d4f9c581f9f7d 127.0.0.1:7005 slave 2cfcc4ce55d10bc82ee8059377d663264c4a6d69 0 1486571735425 6 connected
2cfcc4ce55d10bc82ee8059377d663264c4a6d69 127.0.0.1:7002 master - 0 1486571736936 3 connected 10923-16383
e06060edc7f7fde3d69d283cd958f0281289e639 127.0.0.1:7004 slave 888c76a0462fd537ed9b2f5cbe496f51be518efb 0 1486571735929 5 connected
bfb90bd367a466739f264a6115d170d232de9b65 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460
888c76a0462fd537ed9b2f5cbe496f51be518efb 127.0.0.1:7001 master - 0 1486571736936 2 connected 5461-10922
127.0.0.1:7000> set key001 v001
-> Redirected to slot [12657] located at 127.0.0.1:7002
OK
127.0.0.1:7002> get key001
"v001" |