Redis之叢集部署
阿新 • • 發佈:2018-12-13
部署
① 環境準備
準備三臺機器(192.168.124.1、192.168.124.2、192.168.124.3),每臺部署兩個Redis例項
- 192.168.124.1部署7001,7002埠例項的Redis
- 192.168.124.2部署7003,7004埠例項的Redis
- 192.168.124.3部署7005,7006埠例項的Redis
②修改配置檔案
修改每個例項的redis.conf配置檔案
- port 7001
- bind 0.0.0.0(允許所有ip客戶端的訪問)
- requirepass 123456(設定密碼,也可以不設定)
- daemonize yes
- pidfile /opt/redis-4.0.11/7001/redis_7001.pid
③安裝ruby
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
④啟動例項
與單點的redis的啟動方式一樣,分別啟動六個redis的例項
./redis-server ../redis.conf &
⑤開放埠
- redis客戶端連線的埠
192.168.124.1的7001,7002;192.168.124.2的7003,7004;192.168.124.3的7005,7006埠
- 叢集中例項相互通訊的內部匯流排埠(redis客戶端連線的埠 + 10000)
192.168.124.1的17001,17002;192.168.124.2的17003,17004;192.168.124.3的17005,17006埠
⑥叢集配置
在任意一個redis的src目錄執行
./redis-trib.rb create --replicas 1 192.168.37.133:7001 192.168.37.133:7002 192.168.37.134:7003 192.168.37.134:7004 192.168.37.135:7005 192.168.37.135:7006
結果
>>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.37.133:7001 192.168.37.134:7003 192.168.37.135:7005 Adding replica 192.168.37.134:7004 to 192.168.37.133:7001 Adding replica 192.168.37.135:7006 to 192.168.37.134:7003 Adding replica 192.168.37.133:7002 to 192.168.37.135:7005 M: febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 192.168.37.133:7001 slots:0-5460 (5461 slots) master S: 540f891d97dc0b0c4868488dfe1bc7de2813747a 192.168.37.133:7002 replicates 0e022381183dbe47e4ee32e6a10abb19066c82ff M: 0eae91b1a0b4db3496d15d928f6a32eca50f7cdd 192.168.37.134:7003 slots:5461-10922 (5462 slots) master S: 8e9f9cf9980ed5c0b59c1b7c3801645e3a13ff5a 192.168.37.134:7004 replicates febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 M: 0e022381183dbe47e4ee32e6a10abb19066c82ff 192.168.37.135:7005 slots:10923-16383 (5461 slots) master S: 541d946fb7c1143b4365bec3c668dc76611ca901 192.168.37.135:7006 replicates 0eae91b1a0b4db3496d15d928f6a32eca50f7cdd 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.37.133:7001) M: febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 192.168.37.133:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) M: 0eae91b1a0b4db3496d15d928f6a32eca50f7cdd 192.168.37.134:7003 slots:5461-10922 (5462 slots) master 1 additional replica(s) M: 0e022381183dbe47e4ee32e6a10abb19066c82ff 192.168.37.135:7005 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: 8e9f9cf9980ed5c0b59c1b7c3801645e3a13ff5a 192.168.37.134:7004 slots: (0 slots) slave replicates febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 S: 541d946fb7c1143b4365bec3c668dc76611ca901 192.168.37.135:7006 slots: (0 slots) slave replicates 0eae91b1a0b4db3496d15d928f6a32eca50f7cdd S: 540f891d97dc0b0c4868488dfe1bc7de2813747a 192.168.37.133:7002 slots: (0 slots) slave replicates 0e022381183dbe47e4ee32e6a10abb19066c82ff [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
⑦驗證
登入任意一臺redis的客戶端,執行
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_ping_sent:202
cluster_stats_messages_pong_sent:218
cluster_stats_messages_sent:420
cluster_stats_messages_ping_received:213
cluster_stats_messages_pong_received:202
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:420
執行
cluster nodes
顯示
0eae91b1a0b4db3496d15d928f6a32eca50f7cdd 192.168.37.134:[email protected] master - 0 1538728029000 3 connected 5461-10922
0e022381183dbe47e4ee32e6a10abb19066c82ff 192.168.37.135:[email protected] master - 0 1538728028666 5 connected 10923-16383
8e9f9cf9980ed5c0b59c1b7c3801645e3a13ff5a 192.168.37.134:[email protected] slave febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 0 1538728031692 4 connected
541d946fb7c1143b4365bec3c668dc76611ca901 192.168.37.135:[email protected] slave 0eae91b1a0b4db3496d15d928f6a32eca50f7cdd 0 1538728030685 6 connected
540f891d97dc0b0c4868488dfe1bc7de2813747a 192.168.37.133:[email protected] slave 0e022381183dbe47e4ee32e6a10abb19066c82ff 0 1538728030000 5 connected
febe3f02bfb4800b5f9f0d0b57d675dc0fb882a0 192.168.37.133:[email protected] myself,master - 0 1538728030000 1 connected 0-5460
可以看到
7001是master,7004是其slave
7003是master,7006是其slave
7005是master,7002是其slave
使用Redis desktop manager 進行連線
出現叢集的lcon