工具搭建redis叢集
阿新 • • 發佈:2020-08-09
1.環境準備
節點 | IP | 埠 |
---|---|---|
節點1 | 172.16.1.51 | 6379,6380 |
節點2 | 172.16.1.52 | 6379,6380 |
節點3 | 172.16.1.53 | 6379,6380 |
2.搭建redis(前面的章節都有)
3.啟動所有redis(前面的章節都有)
4.安裝叢集外掛
# EPEL源安裝ruby支援 [root@db01 ~]# yum install ruby rubygems -y # 檢視gem源 [root@db01 ~]# gem sources -l *** CURRENT SOURCES *** http://rubygems.org/ # 新增阿里雲的gem源 [root@db01 ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources # 刪除國外gem源 [root@db01 ~]# gem sources --remove https://rubygems.org/ http://rubygems.org/ removed from sources # 再次檢視gem源 [root@db01 ~]# gem sources -l # 使用gem安裝redis的ruby外掛 [root@db01 ~]# gem install redis -v 3.3.3 Successfully installed redis-3.3.3 1 gem installed Installing ri documentation for redis-3.3.3... Installing RDoc documentation for redis-3.3.3...
5. redis-trib.rb命令
[root@db01 ~]# redis-trib.rb
create #建立一個叢集
check #檢查叢集
info #叢集狀態
fix #修復叢集
reshard #重新分配槽位
rebalance #平衡槽位數量
add-node #新增節點
del-node #刪除節點
set-timeout #設定超時時間
call #向叢集所有機器輸入命令
import #匯入資料
help #幫助
6.關聯所有節點
[root@db01 ~]# redis-trib.rb create --replicas 1 172.16.1.51:6379 172.16.1.52:6379 172.16.1.53:6379 172.16.1.52:6380 172.16.1.53:6380 172.16.1.51:6380 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 172.16.1.51:6379 172.16.1.52:6379 172.16.1.53:6379 Adding replica 172.16.1.52:6380 to 172.16.1.51:6379 Adding replica 172.16.1.51:6380 to 172.16.1.52:6379 Adding replica 172.16.1.53:6380 to 172.16.1.53:6379 M: 5ad7bd957133eac9c3a692b35f8ae72258cf0ece 172.16.1.51:6379 slots:0-5460 (5461 slots) master M: 7c79559b280db9d9c182f3a25c718efe9e934fc7 172.16.1.52:6379 slots:5461-10922 (5462 slots) master M: d27553035a3e91c78d375208c72b756e9b2523d4 172.16.1.53:6379 slots:10923-16383 (5461 slots) master S: fee551a90c8646839f66fa0cd1f6e5859e9dd8e0 172.16.1.52:6380 replicates 5ad7bd957133eac9c3a692b35f8ae72258cf0ece S: e4794215d9d3548e9c514c10626ce618be19ebfb 172.16.1.53:6380 replicates d27553035a3e91c78d375208c72b756e9b2523d4 S: 1d10edbc5ed08f85d2afc21cd338b023b9dd61b4 172.16.1.51:6380 replicates 7c79559b280db9d9c182f3a25c718efe9e934fc7 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 172.16.1.51:6379) M: 5ad7bd957133eac9c3a692b35f8ae72258cf0ece 172.16.1.51:6379 slots:0-5460 (5461 slots) master 1 additional replica(s) S: e4794215d9d3548e9c514c10626ce618be19ebfb 172.16.1.53:6380 slots: (0 slots) slave replicates d27553035a3e91c78d375208c72b756e9b2523d4 M: d27553035a3e91c78d375208c72b756e9b2523d4 172.16.1.53:6379 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: fee551a90c8646839f66fa0cd1f6e5859e9dd8e0 172.16.1.52:6380 slots: (0 slots) slave replicates 5ad7bd957133eac9c3a692b35f8ae72258cf0ece S: 1d10edbc5ed08f85d2afc21cd338b023b9dd61b4 172.16.1.51:6380 slots: (0 slots) slave replicates 7c79559b280db9d9c182f3a25c718efe9e934fc7 M: 7c79559b280db9d9c182f3a25c718efe9e934fc7 172.16.1.52:6379 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.
7.檢視叢集狀態
[root@db01 ~]# redis-cli -h 172.16.1.51 -p 6379 CLUSTER NODES e4794215d9d3548e9c514c10626ce618be19ebfb 172.16.1.53:6380 slave d27553035a3e91c78d375208c72b756e9b2523d4 0 1596767315453 5 connected d27553035a3e91c78d375208c72b756e9b2523d4 172.16.1.53:6379 master - 0 1596767315453 3 connected 10923-16383 5ad7bd957133eac9c3a692b35f8ae72258cf0ece 172.16.1.51:6379 myself,master - 0 0 1 connected 0-5460 fee551a90c8646839f66fa0cd1f6e5859e9dd8e0 172.16.1.52:6380 slave 5ad7bd957133eac9c3a692b35f8ae72258cf0ece 0 1596767313429 4 connected 1d10edbc5ed08f85d2afc21cd338b023b9dd61b4 172.16.1.51:6380 slave 7c79559b280db9d9c182f3a25c718efe9e934fc7 0 1596767313935 6 connected 7c79559b280db9d9c182f3a25c718efe9e934fc7 172.16.1.52:6379 master - 0 1596767314949 2 connected 5461-10922
8.重新做主從
#####由於使用工具,始終有一臺機器從庫本機的從庫,所以要重新分配主從#####
172.16.1.52:6380> CLUSTER REPLICATE d27553035a3e91c78d375208c72b756e9b2523d4
OK ###52的6380埠做到53上####
172.16.1.53:6380> CLUSTER REPLICATE 5ad7bd957133eac9c3a692b35f8ae72258cf0ece
OK ###53的6380埠做到51上####
9.插入資料測試
[root@db01 ~]# redis-trib.rb info 172.16.1.52:6379
172.16.1.52:6379 (7c79559b...) -> 332 keys | 5462 slots | 1 slaves.
172.16.1.51:6379 (5ad7bd95...) -> 341 keys | 5461 slots | 1 slaves.
172.16.1.53:6379 (d2755303...) -> 327 keys | 5461 slots | 1 slaves.
[OK] 1000 keys in 3 masters.
0.06 keys per slot on average.
[root@db01 ~]# redis-trib.rb info 172.16.1.52:6379
172.16.1.52:6379 (7c79559b...) -> 661 keys | 5462 slots | 1 slaves.
172.16.1.51:6379 (5ad7bd95...) -> 674 keys | 5461 slots | 1 slaves.
172.16.1.53:6379 (d2755303...) -> 665 keys | 5461 slots | 1 slaves.
[OK] 2000 keys in 3 masters.
0.12 keys per slot on average.