redis多实例集群搭建与使用

主机分配

主机名IP地址端口角色
node1192.168.124.36377实例一
node1192.168.124.36378实例二
node1192.168.124.36379实例三
node2192.168.124.46380实例四
node2192.168.124.46381实例五
node2192.168.124.46382实例六
node1192.168.124.3管理点

环境搭建

- node1上操作(分别进行以下操作)
[root@node1 ~]# mkdir cluster
[root@node1 ~]# cd cluster/
[root@node1 cluster]# mkdir node1
[root@node1 cluster]# mkdir node2
[root@node1 cluster]# mkdir node3
[root@node1 cluster]# ls
node1  node2  node3
[root@node1 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node1/
[root@node1 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node2/
[root@node1 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node3/
[root@node1 ~]# cd cluster/node1/redis-4.0.8/
[root@node1 redis-4.0.8]# make 
[root@node1 redis-4.0.8]# make install
[root@node1 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6377端口
- node2上操作(分别进行以下操作)
[root@node2 ~]# mkdir cluster
[root@node2 ~]# cd cluster/
[root@node2 cluster]# mkdir node4
[root@node2 cluster]# mkdir node5
[root@node2 cluster]# mkdir node6
[root@node2 cluster]# ls
node4  node5  node6
[root@node2 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node4/
[root@node2 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node5/
[root@node2 ~]# tar -zxvf redis-4.0.8.tar.gz -C cluster/node6/

修改配置文件

[root@node1 ~]# /etc/init.d/redis_6377 stop
[root@node1 ~]# vim /etc/redis/6377.conf
bind 192.168.124.3
port 6377
cluster-enabled yes
cluster-config-file nodes-6377.conf
cluster-node-timeout 5000
:wq
[root@node1 ~]# /etc/init.d/redis_6377 start
[root@node1 ~]# cd cluster/node2/redis-4.0.8/
[root@node1 redis-4.0.8]# make 
[root@node1 redis-4.0.8]# make install
[root@node1 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6378端口
[root@node1 ~]# /etc/init.d/redis_6378 stop
[root@node1 ~]# vim /etc/redis/6378.conf
bind 192.168.124.3
port 6378
cluster-enabled yes
cluster-config-file nodes-6378.conf
cluster-node-timeout 5000
:wq
[root@node1 ~]# /etc/init.d/redis_6378 start
[root@node1 ~]# cd cluster/node3/redis-4.0.8/
[root@node1 redis-4.0.8]# make 
[root@node1 redis-4.0.8]# make install
[root@node1 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6379端口
[root@node1 ~]# /etc/init.d/redis_6379 stop
[root@node1 ~]# vim /etc/redis/6379.conf
bind 192.168.124.3
port 6379
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
:wq
[root@node1 ~]# /etc/init.d/redis_6379 start
[root@node2 ~]# cd cluster/node4/redis-4.0.8/
[root@node2 redis-4.0.8]# make 
[root@node2 redis-4.0.8]# make install
[root@node2 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6380端口
[root@node2 ~]# /etc/init.d/redis_6380 stop
[root@node2 ~]# vim /etc/redis/6380.conf
bind 192.168.124.4
port 6380
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 5000
:wq
[root@node2 ~]# /etc/init.d/redis_6380 start
[root@node2 ~]# cd cluster/node5/redis-4.0.8/
[root@node2 redis-4.0.8]# make 
[root@node2 redis-4.0.8]# make install
[root@node2 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6381端口
[root@node2 ~]# /etc/init.d/redis_6381 stop
[root@node2 ~]# vim /etc/redis/6381.conf
bind 192.168.124.4
port 6381
cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 5000
:wq
[root@node2 ~]# /etc/init.d/redis_6381 start
[root@node2 ~]# cd cluster/node6/redis-4.0.8/
[root@node2 redis-4.0.8]# make 
[root@node2 redis-4.0.8]# make install
[root@node2 redis-4.0.8]# ./utils/install_server.sh
##指定你的配置,本次安装指定的是6382端口
[root@node2 ~]# /etc/init.d/redis_6382 stop
[root@node2 ~]# vim /etc/redis/6382.conf
bind 192.168.124.4
port 6382
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000
:wq
[root@node2 ~]# /etc/init.d/redis_6382 start

查看状态

[root@node1 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.3:16377     0.0.0.0:*               LISTEN      1034/redis-server 1 
tcp        0      0 192.168.124.3:16378     0.0.0.0:*               LISTEN      1031/redis-server 1 
tcp        0      0 192.168.124.3:16379     0.0.0.0:*               LISTEN      1032/redis-server 1 
tcp        0      0 192.168.124.3:6377      0.0.0.0:*               LISTEN      1034/redis-server 1 
tcp        0      0 192.168.124.3:6378      0.0.0.0:*               LISTEN      1031/redis-server 1 
tcp        0      0 192.168.124.3:6379      0.0.0.0:*               LISTEN      1032/redis-server 1
[root@node2 ~]# netstat -lnput | grep redis
tcp        0      0 192.168.124.4:16380     0.0.0.0:*               LISTEN      1082/redis-server 1 
tcp        0      0 192.168.124.4:16381     0.0.0.0:*               LISTEN      1083/redis-server 1 
tcp        0      0 192.168.124.4:16382     0.0.0.0:*               LISTEN      1065/redis-server 1 
tcp        0      0 192.168.124.4:6380      0.0.0.0:*               LISTEN      1082/redis-server 1 
tcp        0      0 192.168.124.4:6381      0.0.0.0:*               LISTEN      1083/redis-server 1 
tcp        0      0 192.168.124.4:6382      0.0.0.0:*               LISTEN      1065/redis-server 1

搭建管理节点

[root@node1 ~]# yum  -y  install   rubygems
[root@node1 ~]# gem install redis-3.2.1.gem
[root@node1 ~]# mkdir  /root/bin    
[root@node1 ~]# tar -zxvf redis-4.0.8.tar.gz
[root@node1 ~]# cd  redis-4.0.8/src/
[root@node1 ~]# cp  redis-trib.rb   /root/bin/ 
[root@node1 ~]# chmod  +x   /root/bin/redis-trib.rb
[root@node1 ~]# redis-trib.rb 

创建集群

[root@node1 ~]#  redis-trib.rb create  --replicas 192.168.124.3:6377 192.168.124.3:6378 192.168.124.3:6379 192.168.124.4:6380 192.168.124.4:6381 192.168.124.4:6382
[OK] All 16384 slots covered.   ##成功

注:如果集群有密码,需要在client.rb中指定密码

- 检测集群信息
[root@node1 ~]# redis-trib.rb check 192.168.124.3:6377
>>> Performing Cluster Check (using node 192.168.124.3:6377)
M: 4ccdc9069e2be50552dfde275d62fa9c13712135 192.168.124.3:6377
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 20aef13d825914fa97f20341c26d629463a7c641 192.168.124.4:6380
   slots: (0 slots) slave
   replicates e95134820b8e10345aa5044907c97e95d8a36ae7
M: e95134820b8e10345aa5044907c97e95d8a36ae7 192.168.124.3:6379
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: 62ce3137c41db3016d0c66d63b945ceeb312f8b5 192.168.124.3:6378
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 84ef0546cda459e8920a550bef7a5b244b35e139 192.168.124.4:6381
   slots: (0 slots) slave
   replicates 62ce3137c41db3016d0c66d63b945ceeb312f8b5
S: 6365c6d9c4f853a4bc8baaf9981c3874a4393f1e 192.168.124.4:6382
   slots: (0 slots) slave
   replicates 4ccdc9069e2be50552dfde275d62fa9c13712135
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
- 查看集群详细信息
[root@node1 ~]# redis-cli -c -h 192.168.124.3 -p 6377 
192.168.124.3:6377> ping
PONG
192.168.124.3:6377> 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:10
cluster_my_epoch:10
cluster_stats_messages_ping_sent:13836
cluster_stats_messages_pong_sent:9706
cluster_stats_messages_auth-req_sent:10
cluster_stats_messages_update_sent:2
cluster_stats_messages_sent:23554
cluster_stats_messages_ping_received:9701
cluster_stats_messages_pong_received:9567
cluster_stats_messages_fail_received:6
cluster_stats_messages_auth-ack_received:2
cluster_stats_messages_update_received:8
cluster_stats_messages_received:19284

访问集群

[root@node1 ~]# redis-cli -c -h 192.168.124.3 -p 6377
192.168.124.3:6377> keys *
1) "3"
192.168.124.3:6377> set 123 123
-> Redirected to slot [5970] located at 192.168.124.3:6379
OK
192.168.124.3:6379> set 456 456
-> Redirected to slot [13712] located at 192.168.124.3:6378
OK
192.168.124.3:6378> 

注:如果想设置密码,可以到配置文件中配置。比如你的数据库设置的密码为123456

[root@node1 ~]# find / -name "client.rb"
/usr/local/share/gems/gems/redis-3.2.1/lib/redis/client.rb
[root@node1 ~]# vim /usr/local/share/gems/gems/redis-3.2.1/lib/redis/client.rb
class Redis
  class Client

    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :connect_timeout => 5.0,
      :password => 123456,
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }

需把文件中的密码改为123456,如上所述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值