日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis Cluster集群的搭建与实践[转]

發(fā)布時(shí)間:2025/3/17 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis Cluster集群的搭建与实践[转] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Redis Cluster集群的搭建與實(shí)踐

Redis Cluster集群
一、redis-cluster設(shè)計(jì)

Redis集群搭建的方式有多種,例如使用zookeeper等,但從redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用無中心結(jié)構(gòu),每個(gè)節(jié)點(diǎn)保存數(shù)據(jù)和整個(gè)集群狀態(tài),每個(gè)節(jié)點(diǎn)都和其他所有節(jié)點(diǎn)連接。其redis-cluster架構(gòu)圖如下:

其結(jié)構(gòu)特點(diǎn):

1、所有的redis節(jié)點(diǎn)彼此互聯(lián)(PING-PONG機(jī)制),內(nèi)部使用二進(jìn)制協(xié)議優(yōu)化傳輸速度和帶寬。2、節(jié)點(diǎn)的fail是通過集群中超過半數(shù)的節(jié)點(diǎn)檢測(cè)失效時(shí)才生效。3、客戶端與redis節(jié)點(diǎn)直連,不需要中間proxy層.客戶端不需要連接集群所有節(jié)點(diǎn),連接集群中任何一個(gè)可用節(jié)點(diǎn)即可。4、redis-cluster把所有的物理節(jié)點(diǎn)映射到[0-16383]slot上(不一定是平均分配),cluster 負(fù)責(zé)維護(hù)node<->slot<->value。5、Redis集群預(yù)分好16384個(gè)桶,當(dāng)需要在 Redis 集群中放置一個(gè) key-value 時(shí),根據(jù) CRC16(key) mod 16384的值,決定將一個(gè)key放到哪個(gè)桶中。

1、redis cluster節(jié)點(diǎn)分配

現(xiàn)在我們是三個(gè)主節(jié)點(diǎn)分別是:A, B, C 三個(gè)節(jié)點(diǎn),它們可以是一臺(tái)機(jī)器上的三個(gè)端口,也可以是三臺(tái)不同的服務(wù)器。那么,采用哈希槽 (hash slot)的方式來分配16384個(gè)slot 的話,它們?nèi)齻€(gè)節(jié)點(diǎn)分別承擔(dān)的slot 區(qū)間是:

節(jié)點(diǎn)A覆蓋0-5460;節(jié)點(diǎn)B覆蓋5461-10922;節(jié)點(diǎn)C覆蓋10923-16383.獲取數(shù)據(jù):如果存入一個(gè)值,按照redis cluster哈希槽的算法: CRC16('key')%16384 = 6782。 那么就會(huì)把這個(gè)key 的存儲(chǔ)分配到 B 上了。同樣,當(dāng)我連接(A,B,C)任何一個(gè)節(jié)點(diǎn)想獲取'key'這個(gè)key時(shí),也會(huì)這樣的算法,然后內(nèi)部跳轉(zhuǎn)到B節(jié)點(diǎn)上獲取數(shù)據(jù) 新增一個(gè)主節(jié)點(diǎn):新增一個(gè)節(jié)點(diǎn)D,redis cluster的這種做法是從各個(gè)節(jié)點(diǎn)的前面各拿取一部分slot到D上,我會(huì)在接下來的實(shí)踐中實(shí)驗(yàn)。大致就會(huì)變成這樣:節(jié)點(diǎn)A覆蓋1365-5460 節(jié)點(diǎn)B覆蓋6827-10922 節(jié)點(diǎn)C覆蓋12288-16383 節(jié)點(diǎn)D覆蓋0-1364,5461-6826,10923-12287同樣刪除一個(gè)節(jié)點(diǎn)也是類似,移動(dòng)完成后就可以刪除這個(gè)節(jié)點(diǎn)了。2、Redis Cluster主從模式redis cluster 為了保證數(shù)據(jù)的高可用性,加入了主從模式,一個(gè)主節(jié)點(diǎn)對(duì)應(yīng)一個(gè)或多個(gè)從節(jié)點(diǎn),主節(jié)點(diǎn)提供數(shù)據(jù)存取,從節(jié)點(diǎn)則是從主節(jié)點(diǎn)拉取數(shù)據(jù)備份,當(dāng)這個(gè)主節(jié)點(diǎn)掛掉后,就會(huì)有這個(gè)從節(jié)點(diǎn)選取一個(gè)來充當(dāng)主節(jié)點(diǎn),從而保證集群不會(huì)掛掉。上面那個(gè)例子里, 集群有ABC三個(gè)主節(jié)點(diǎn), 如果這3個(gè)節(jié)點(diǎn)都沒有加入從節(jié)點(diǎn),如果B掛掉了,我們就無法訪問整個(gè)集群了。A和C的slot也無法訪問。所以我們?cè)诩航⒌臅r(shí)候,一定要為每個(gè)主節(jié)點(diǎn)都添加了從節(jié)點(diǎn), 比如像這樣, 集群包含主節(jié)點(diǎn)A、B、C, 以及從節(jié)點(diǎn)A1、B1、C1, 那么即使B掛掉系統(tǒng)也可以繼續(xù)正確工作。B1節(jié)點(diǎn)替代了B節(jié)點(diǎn),所以Redis集群將會(huì)選擇B1節(jié)點(diǎn)作為新的主節(jié)點(diǎn),集群將會(huì)繼續(xù)正確地提供服務(wù)。 當(dāng)B重新開啟后,它就會(huì)變成B1的從節(jié)點(diǎn)。不過需要注意,如果節(jié)點(diǎn)B和B1同時(shí)掛了,Redis集群就無法繼續(xù)正確地提供服務(wù)了。

二、redis集群的搭建

集群中至少應(yīng)該有奇數(shù)個(gè)節(jié)點(diǎn),所以至少有三個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)至少有一個(gè)備份節(jié)點(diǎn),所以下面使用6節(jié)點(diǎn)(主節(jié)點(diǎn)、備份節(jié)點(diǎn)由redis-cluster集群確定)。下面使用redis-3.2.0安裝,下載地址 1、安裝redis節(jié)點(diǎn)指定端口解壓redis壓縮包,編譯安裝

[plain] view plain copy

[root@localhost redis-3.2.0]# tar xzf redis-3.2.0.tar.gz [root@localhost redis-3.2.0]# cd redis-3.2.0 [root@localhost redis-3.2.0]# make [root@localhost redis01]# make install PREFIX=/usr/andy/redis-cluster 在redis-cluster下 修改bin文件夾為redis01,復(fù)制redis.conf配置文件配置redis的配置文件redis.confdaemonize yes #后臺(tái)啟動(dòng)port 7001 #修改端口號(hào),從7001到7006cluster-enabled yes #開啟cluster,去掉注釋cluster-config-file nodes.confcluster-node-timeout 15000appendonly yes復(fù)制六份,修改對(duì)應(yīng)的端口號(hào)2、安裝redis-trib所需的 ruby腳本復(fù)制redis解壓文件src下的redis-trib.rb文件到redis-cluster目錄

[plain] view plain copy

[root@localhost redis-cluster]# cp /usr/andy/redis/redis-3.2.0/src/redis-trib.rb ./ 安裝ruby環(huán)境:

[plain] view plain copy

[root@localhost redis-cluster]# yum install ruby [root@localhost redis-cluster]# yum install rubygems 安裝redis-trib.rb運(yùn)行依賴的ruby的包redis-3.2.2.gem,下載

[plain] view plain copy

[root@localhost redis-cluster]# gem install redis-3.2.2.gem 3、啟動(dòng)所有的redis節(jié)點(diǎn)可以寫一個(gè)命令腳本start-all.sh

[plain] view plain copy

cd redis01 ./redis-server redis.conf cd .. cd redis02 ./redis-server redis.conf cd .. cd redis03 ./redis-server redis.conf cd .. cd redis04 ./redis-server redis.conf cd .. cd redis05 ./redis-server redis.conf cd .. cd redis06 ./redis-server redis.conf cd .. 設(shè)置權(quán)限啟動(dòng)

[plain] view plain copy

[root@localhost redis-cluster]# chmod 777 start-all.sh [root@localhost redis-cluster]# ./start-all.sh 查看redis進(jìn)程啟動(dòng)狀態(tài)

[plain] view plain copy

[root@localhost redis-cluster]# ps -ef | grep redis root 4547 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7001 [cluster] root 4551 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7002 [cluster] root 4555 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7003 [cluster] root 4559 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7004 [cluster] root 4563 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7005 [cluster] root 4567 1 0 23:12 ? 00:00:00 ./redis-server 127.0.0.1:7006 [cluster] root 4840 4421 0 23:26 pts/1 00:00:00 grep --color=auto redis

可以看到redis的6個(gè)節(jié)點(diǎn)已經(jīng)啟動(dòng)成功

殺死全部的幾點(diǎn):

[plain] view plain copy

[root@localhost redis-cluster]# pkill -9 redis 4、使用redis-trib.rb創(chuàng)建集群

[plain] view plain copy

./redis-trib.rb create --replicas 1 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 127.0.0.1:7006 使用create命令 --replicas 1 參數(shù)表示為每個(gè)主節(jié)點(diǎn)創(chuàng)建一個(gè)從節(jié)點(diǎn),其他參數(shù)是實(shí)例的地址集合。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 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 127.0.0.1:7006 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 Adding replica 127.0.0.1:7004 to 127.0.0.1:7001 Adding replica 127.0.0.1:7005 to 127.0.0.1:7002 Adding replica 127.0.0.1:7006 to 127.0.0.1:7003 M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001 slots:0-5460 (5461 slots) master M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002 slots:5461-10922 (5462 slots) master M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003 slots:10923-16383 (5461 slots) master S: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004 replicates dfd510594da614469a93a0a70767ec9145aefb1a S: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005 replicates e02eac35110bbf44c61ff90175e04d55cca097ff S: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006 replicates 4385809e6f4952ecb122dbfedbee29109d6bb234 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 127.0.0.1:7001) M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001 slots:0-5460 (5461 slots) master M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002 slots:5461-10922 (5462 slots) master M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003 slots:10923-16383 (5461 slots) master M: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004 slots: (0 slots) master replicates dfd510594da614469a93a0a70767ec9145aefb1a M: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005 slots: (0 slots) master replicates e02eac35110bbf44c61ff90175e04d55cca097ff M: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006 slots: (0 slots) master replicates 4385809e6f4952ecb122dbfedbee29109d6bb234 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 上面顯示創(chuàng)建成功,有3個(gè)主節(jié)點(diǎn),3個(gè)從節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是成功連接狀態(tài)。3個(gè)主節(jié)點(diǎn)[M]以及分配的哈希卡槽如下:

M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003
slots:10923-16383 (5461 slots) master

3個(gè)從節(jié)點(diǎn)[S]以及附屬的主節(jié)點(diǎn)如下:S: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004replicates dfd510594da614469a93a0a70767ec9145aefb1aS: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005replicates e02eac35110bbf44c61ff90175e04d55cca097ffS: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006replicates 4385809e6f4952ecb122dbfedbee29109d6bb234以上集群安裝成功了,如果安裝未成功報(bào)如下錯(cuò)誤>>> Creating cluster[ERR] Sorry, can't connect to node ....需要安裝最新的ruby源碼,下載

[plain] view plain copy

[root@localhost redis-cluster]# tar -zxvf ruby-2.3.1.tar.gz [root@localhost redis-cluster]# cd [root@localhost redis-cluster]# ./configure --prefix=/usr/local/ruby-2.3.1 [root@localhost redis-cluster]# make && make install [root@localhost redis-cluster]#gem install redis 還有一種情況是,在VMware做測(cè)試的時(shí)間(都在一臺(tái)服務(wù)器時(shí)),ip應(yīng)該使用127.0.0.1,如果使用局域網(wǎng)ip,也會(huì)報(bào)節(jié)點(diǎn)創(chuàng)建失敗。

三、redis集群的測(cè)試
1、測(cè)試存取值

客戶端連接集群redis-cli需要帶上 -c ,redis-cli -c -p 端口號(hào)

[plain] view plain copy

[root@localhost redis01]# ./redis-cli -c -p 7001 127.0.0.1:7001> set name andy -> Redirected to slot [5798] located at 127.0.0.1:7002 OK 127.0.0.1:7002> get name "andy" 127.0.0.1:7002> 根據(jù)redis-cluster的key值分配,name應(yīng)該分配到節(jié)點(diǎn)7002[5461-10922]上,上面顯示redis cluster自動(dòng)從7001跳轉(zhuǎn)到了7002節(jié)點(diǎn)。我們可以測(cè)試一下7006從節(jié)點(diǎn)獲取name值

[plain] view plain copy

[root@localhost redis06]# ./redis-cli -c -p 7006 127.0.0.1:7006> get name -> Redirected to slot [5798] located at 127.0.0.1:7002 "andy" 127.0.0.1:7002> 7006位7003的從節(jié)點(diǎn),從上面也是自動(dòng)跳轉(zhuǎn)至7002獲取值,這也是redis cluster的特點(diǎn),它是去中心化,每個(gè)節(jié)點(diǎn)都是對(duì)等的,連接哪個(gè)節(jié)點(diǎn)都可以獲取和設(shè)置數(shù)據(jù)。

四、集群節(jié)點(diǎn)選舉

現(xiàn)在模擬將7002節(jié)點(diǎn)掛掉,按照redis-cluster原理會(huì)選舉會(huì)將 7002的從節(jié)點(diǎn)7005選舉為主節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# ps -ef | grep redis root 7950 1 0 12:50 ? 00:00:28 ./redis-server 127.0.0.1:7001 [cluster] root 7952 1 0 12:50 ? 00:00:29 ./redis-server 127.0.0.1:7002 [cluster] root 7956 1 0 12:50 ? 00:00:29 ./redis-server 127.0.0.1:7003 [cluster] root 7960 1 0 12:50 ? 00:00:29 ./redis-server 127.0.0.1:7004 [cluster] root 7964 1 0 12:50 ? 00:00:29 ./redis-server 127.0.0.1:7005 [cluster] root 7966 1 0 12:50 ? 00:00:29 ./redis-server 127.0.0.1:7006 [cluster] root 11346 10581 0 14:57 pts/2 00:00:00 grep --color=auto redis [root@localhost redis-cluster]# kill 7952 在查看集群中的7002節(jié)點(diǎn)

[plain] view plain copy

[root@localhost redis-cluster]# [root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7002 [ERR] Sorry, can't connect to node 127.0.0.1:7002 [root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7005 >>> Performing Cluster Check (using node 127.0.0.1:7005) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:5461-10922 (5462 slots) master 0 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost redis-cluster]# 可以看到集群連接不了7002節(jié)點(diǎn),而7005有原來的S轉(zhuǎn)換為M節(jié)點(diǎn),代替了原來的7002節(jié)點(diǎn)。我們可以獲取name值:

[plain] view plain copy

[root@localhost redis01]# ./redis-cli -c -p 7001 127.0.0.1:7001> get name -> Redirected to slot [5798] located at 127.0.0.1:7005 "andy" 127.0.0.1:7005> 127.0.0.1:7005>

從7001節(jié)點(diǎn)連入,自動(dòng)跳轉(zhuǎn)到7005節(jié)點(diǎn),并且獲取name值。

現(xiàn)在我們將7002節(jié)點(diǎn)恢復(fù),看是否會(huì)自動(dòng)加入集群中以及充當(dāng)?shù)腗還是S節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# cd redis02 [root@localhost redis02]# ./redis-server redis.conf [root@localhost redis02]# 在check一下7002節(jié)點(diǎn)

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7002 >>> Performing Cluster Check (using node 127.0.0.1:7002) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:5461-10922 (5462 slots) master 1 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:0-5460 (5461 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. [root@localhost redis-cluster]# 可以看到7002節(jié)點(diǎn)變成了a5db243087d8bd423b9285fa8513eddee9bb59a6 7005的從節(jié)點(diǎn)。

五、集群節(jié)點(diǎn)添加

節(jié)點(diǎn)新增包括新增主節(jié)點(diǎn)、從節(jié)點(diǎn)兩種情況。以下分別做一下測(cè)試:
1、新增主節(jié)點(diǎn)

新增一個(gè)節(jié)點(diǎn)7007作為主節(jié)點(diǎn)修改配置文件

[plain] view plain copy

[root@localhost redis-cluster]# cp -r redis01 redis07 [root@localhost redis-cluster]# cd redis07/ [root@localhost redis07]# sed -i "s/7001/7007/g" ./redis.conf 啟動(dòng)7007redis服務(wù)

[plain] view plain copy

[root@localhost redis07]# ./redis-server redis.conf [root@localhost redis07]# netstat -anp | grep 7007 tcp 0 0 127.0.0.1:17007 0.0.0.0:* LISTEN 13441/./redis-serve tcp 0 0 127.0.0.1:7007 0.0.0.0:* LISTEN 13441/./redis-serve [root@localhost redis07]#

上面可以看到,7007已經(jīng)啟動(dòng),現(xiàn)在加入集群中。添加使用redis-trib.rb的add-node命令

[plain] view plain copy

./redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7002 add-node是加入集群節(jié)點(diǎn),127.0.0.1:7007為要加入的節(jié)點(diǎn),127.0.0.1:7002 表示加入的集群的一個(gè)節(jié)點(diǎn),用來辨識(shí)是哪個(gè)集群,理論上那個(gè)集群的節(jié)點(diǎn)都可以。執(zhí)行以下add-node

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7002 >>> Adding node 127.0.0.1:7007 to cluster 127.0.0.1:7002 >>> Performing Cluster Check (using node 127.0.0.1:7002) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:5461-10922 (5462 slots) master 1 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:0-5460 (5461 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. >>> Send CLUSTER MEET to node 127.0.0.1:7007 to make it join the cluster. [OK] New node added correctly. [root@localhost redis-cluster]# 可以看到7007加入這個(gè)Cluster,并成為一個(gè)新的節(jié)點(diǎn)。可以check以下7007節(jié)點(diǎn)狀態(tài)

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7007 >>> Performing Cluster Check (using node 127.0.0.1:7007) M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) master 0 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:5461-10922 (5462 slots) master 1 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost redis-cluster]#

M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007
slots: (0 slots) master
0 additional replica(s)

上面信息可以看到有4個(gè)M節(jié)點(diǎn),3個(gè)S節(jié)點(diǎn),7007成為了M主節(jié)點(diǎn),它沒有附屬的從節(jié)點(diǎn),而且Cluster并未給7007分配哈希卡槽(0 slots)。

可以從客戶端連接集群查看一下,集群節(jié)點(diǎn)的連接情況

[plain] view plain copy

[root@localhost redis-cluster]# cd redis07/ [root@localhost redis07]# ./redis-cli -c -p 7007 127.0.0.1:7007> cluster nodes 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slave f9886c71e98a53270f7fda961e1c5f730382d48f 0 1462955393326 3 connected dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 master - 0 1462955388247 1 connected 0-5460 ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 myself,master - 0 0 0 connected f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 master - 0 1462955390270 3 connected 10923-16383 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slave a5db243087d8bd423b9285fa8513eddee9bb59a6 0 1462955394334 7 connected a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 master - 0 1462955392309 7 connected 5461-10922 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slave dd19221c404fb2fc4da37229de56bab755c76f2b 0 1462955389663 1 connected 127.0.0.1:7007> redis-cluster在新增節(jié)點(diǎn)時(shí)并未分配卡槽,需要我們手動(dòng)對(duì)集群進(jìn)行重新分片遷移數(shù)據(jù),需要重新分片命令 reshardredis-trib.rb reshard 127.0.0.1:7005這個(gè)命令是用來遷移slot節(jié)點(diǎn)的,后面的127.0.0.1:7005是表示是哪個(gè)集群,端口填[7000-7007]都可以,執(zhí)行結(jié)果如下:

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb reshard 127.0.0.1:7005 >>> Performing Cluster Check (using node 127.0.0.1:7005) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:5461-10922 (5462 slots) master 1 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) master 0 additional replica(s) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 它提示我們需要遷移多少slot到7007上,我們平分16384個(gè)哈希槽給4個(gè)節(jié)點(diǎn):16384/4 = 4096,我們需要移動(dòng)4096個(gè)槽點(diǎn)到7007上。

[plain] view plain copy

[OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 4096 What is the receiving node ID? 需要輸入7007的節(jié)點(diǎn)id,ee3efb90e5ac0725f15238a64fc60a18a71205d7

[plain] view plain copy

Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1: redis-trib 會(huì)向你詢問重新分片的源節(jié)點(diǎn)(source node),即,要從特點(diǎn)的哪個(gè)節(jié)點(diǎn)中取出 4096 個(gè)哈希槽,還是從全部節(jié)點(diǎn)提取4096個(gè)哈希槽, 并將這些槽移動(dòng)到7007節(jié)點(diǎn)上面。如果我們不打算從特定的節(jié)點(diǎn)上取出指定數(shù)量的哈希槽,那么可以向redis-trib輸入 all,這樣的話, 集群中的所有主節(jié)點(diǎn)都會(huì)成為源節(jié)點(diǎn),redis-trib從各個(gè)源節(jié)點(diǎn)中各取出一部分哈希槽,湊夠4096個(gè),然后移動(dòng)到7007節(jié)點(diǎn)上:

[plain] view plain copy

Source node #1:all 然后開始從別的主節(jié)點(diǎn)遷移哈希槽,并且確認(rèn)。

[plain] view plain copy

Moving slot 1343 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1344 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1345 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1346 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1347 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1348 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1349 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1350 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1351 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1352 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1353 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1354 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1355 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1356 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1357 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1358 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1359 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1360 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1361 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1362 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1363 from dd19221c404fb2fc4da37229de56bab755c76f2b Moving slot 1364 from dd19221c404fb2fc4da37229de56bab755c76f2b Do you want to proceed with the proposed reshard plan (yes/no)? yes 確認(rèn)之后,redis-trib就開始執(zhí)行分片操作,將哈希槽一個(gè)一個(gè)從源主節(jié)點(diǎn)移動(dòng)到7007目標(biāo)主節(jié)點(diǎn)。重新分片結(jié)束后我們可以check以下節(jié)點(diǎn)的分配情況。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7001 >>> Performing Cluster Check (using node 127.0.0.1:7001) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:1365-5460 (4096 slots) master 1 additional replica(s) M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots:0-1364,5461-6826,10923-12287 (4096 slots) master 0 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost redis-cluster]#

slots:0-1364,5461-6826,10923-12287 (4096 slots) master

可以看到7007節(jié)點(diǎn)分片的哈希槽片不是連續(xù)的,間隔的移動(dòng)。

[plain] view plain copy

[root@localhost redis-cluster]# cd redis07/ [root@localhost redis07]# ./redis-cli -c 7007 Could not connect to Redis at 127.0.0.1:6379: Connection refused [root@localhost redis07]# ./redis-cli -c -p 7007 127.0.0.1:7007> keys * 1) "name" 2) "age" 127.0.0.1:7007> 127.0.0.1:7007> 可以看到將7001的age[741]和name[5798]移動(dòng)到7007節(jié)點(diǎn)上,主節(jié)點(diǎn)7007添加成功。2、新增從節(jié)點(diǎn)新增一個(gè)節(jié)點(diǎn)7008節(jié)點(diǎn),使用add-node --slave命令。

[plain] view plain copy

[root@localhost redis-cluster]# cp -r redis01/ redis08 [root@localhost redis-cluster]# cd redis08/ [root@localhost redis08]# sed -i "s/7001/7008/g" ./redis.conf [root@localhost redis08]# ./redis-server redis.conf

redis-trib增加從節(jié)點(diǎn)的命令為:

[plain] view plain copy

./redis-trib.rb add-node --slave --master-id $[nodeid] 127.0.0.1:7008 127.0.0.1:7000 nodeid為要加到master主節(jié)點(diǎn)的node id,127.0.0.1:7008為新增的從節(jié)點(diǎn),127.0.0.1:7000為集群的一個(gè)節(jié)點(diǎn)(集群的任意節(jié)點(diǎn)都行),用來辨識(shí)是哪個(gè)集群;如果沒有給定那個(gè)主節(jié)點(diǎn)--master-id的話,redis-trib將會(huì)將新增的從節(jié)點(diǎn)隨機(jī)到從節(jié)點(diǎn)較少的主節(jié)點(diǎn)上。現(xiàn)在我們添加一下7008,看是否會(huì)自動(dòng)加到?jīng)]有從節(jié)點(diǎn)的7007主節(jié)點(diǎn)上。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb add-node --slave 127.0.0.1:7008 127.0.0.1:7001>>> Adding node 127.0.0.1:7008 to cluster 127.0.0.1:7001 >>> Performing Cluster Check (using node 127.0.0.1:7001) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:1365-5460 (4096 slots) master 1 additional replica(s) M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots:0-1364,5461-6826,10923-12287 (4096 slots) master 0 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. Automatically selected master 127.0.0.1:7007 >>> Send CLUSTER MEET to node 127.0.0.1:7008 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 127.0.0.1:7007. [OK] New node added correctly. [root@localhost redis-cluster]# 可以看到自動(dòng)選擇了127.0.0.1:7007為master主節(jié)點(diǎn),并且添加成功。可以check一下7008:

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7008 >>> Performing Cluster Check (using node 127.0.0.1:7008) S: 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slots: (0 slots) slave replicates ee3efb90e5ac0725f15238a64fc60a18a71205d7 M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 slots) master 1 additional replica(s) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:1365-5460 (4096 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots:0-1364,5461-6826,10923-12287 (4096 slots) master 1 additional replica(s) S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost redis-cluster]# 可以看到7008作為了7007的從節(jié)點(diǎn)。再測(cè)試一下指定主節(jié)點(diǎn)添加從節(jié)點(diǎn),給7007增加7009從節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# cp -r redis01/ redis09 [root@localhost redis-cluster]# cd redis09 [root@localhost redis09]# sed -i "s/7001/7009/g" ./redis.conf [root@localhost redis09]# ./redis-server redis.conf 添加7007主節(jié)點(diǎn)上

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb add-node --slave --master-id ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7009 127.0.0.1:7001 >>> Adding node 127.0.0.1:7009 to cluster 127.0.0.1:7001 >>> Performing Cluster Check (using node 127.0.0.1:7001) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:1365-5460 (4096 slots) master 1 additional replica(s) S: 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slots: (0 slots) slave replicates ee3efb90e5ac0725f15238a64fc60a18a71205d7 M: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots:0-1364,5461-6826,10923-12287 (4096 slots) master 1 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 slots) master 1 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 127.0.0.1:7009 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 127.0.0.1:7007. [OK] New node added correctly. [root@localhost redis-cluster]# 顯示從節(jié)點(diǎn)7009節(jié)點(diǎn)添加到7007主節(jié)點(diǎn),可以看一下7007的從節(jié)點(diǎn),如下:

[plain] view plain copy

[root@localhost redis-cluster]# cd ./redis07 [root@localhost redis07]# ./redis-cli -c -p 7007 cluster nodes | grep ee3efb90e5ac0725f15238a64fc60a18a71205d7 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 slave ee3efb90e5ac0725f15238a64fc60a18a71205d7 0 1462962710266 8 connected ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 myself,master - 0 0 8 connected 0-1364 5461-6826 10923-12287 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slave ee3efb90e5ac0725f15238a64fc60a18a71205d7 0 1462962711607 8 connected [root@localhost redis07]# maser 7007有2個(gè)slave 7008,7009。我們測(cè)試一下7007節(jié)點(diǎn)掛掉,看7008和7009那個(gè)成為主節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# ps -ef | grep redis root 7950 1 0 12:50 ? 00:02:05 ./redis-server 127.0.0.1:7001 [cluster] root 7956 1 0 12:50 ? 00:02:11 ./redis-server 127.0.0.1:7003 [cluster] root 7960 1 0 12:50 ? 00:01:47 ./redis-server 127.0.0.1:7004 [cluster] root 7964 1 0 12:50 ? 00:02:07 ./redis-server 127.0.0.1:7005 [cluster] root 7966 1 0 12:50 ? 00:01:46 ./redis-server 127.0.0.1:7006 [cluster] root 12070 1 0 15:14 ? 00:01:08 ./redis-server 127.0.0.1:7002 [cluster] root 13441 1 0 16:09 ? 00:01:25 ./redis-server 127.0.0.1:7007 [cluster] root 15939 1 0 17:41 ? 00:00:20 ./redis-server 127.0.0.1:7008 [cluster] root 16623 1 0 18:07 ? 00:00:10 ./redis-server 127.0.0.1:7009 [cluster] root 17295 10581 0 18:37 pts/2 00:00:00 grep --color=auto redis [root@localhost redis-cluster]# kill -9 13441 [root@localhost redis-cluster]# cd ./redis08 [root@localhost redis08]# ./redis-cli -c -p 7008 127.0.0.1:7008> get name -> Redirected to slot [5798] located at 127.0.0.1:7009 "andy" 127.0.0.1:7009> cluster nodes ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 master,fail - 1462963082317 1462963080194 8 disconnected 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slave dd19221c404fb2fc4da37229de56bab755c76f2b 0 1462963170968 1 connected f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 master - 0 1462963168525 3 connected 12288-16383 dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 master - 0 1462963164466 1 connected 1365-5460 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slave 1f51443ede952b98724fea2a12f61fe710ab6cb1 0 1462963167508 9 connected 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 myself,master - 0 0 9 connected 0-1364 5461-6826 10923-12287 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slave a5db243087d8bd423b9285fa8513eddee9bb59a6 0 1462963170564 7 connected 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slave f9886c71e98a53270f7fda961e1c5f730382d48f 0 1462963167915 3 connected a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 master - 0 1462963169538 7 connected 6827-10922 127.0.0.1:7009> 可以看到7009代替7007成了主節(jié)點(diǎn)。重啟7007之后,會(huì)自動(dòng)變成7009的從節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# cd redis07 [root@localhost redis07]# ./redis-server redis.conf [root@localhost redis07]# cd ../ [root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7007 >>> Performing Cluster Check (using node 127.0.0.1:7007) S: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates dd19221c404fb2fc4da37229de56bab755c76f2b M: 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 slots:0-1364,5461-6826,10923-12287 (4096 slots) master 2 additional replica(s) S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots:1365-5460 (4096 slots) master 1 additional replica(s) M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [root@localhost redis-cluster]# 驗(yàn)證了之前的測(cè)試。

六、節(jié)點(diǎn)的移除

和節(jié)點(diǎn)添加一樣,移除節(jié)點(diǎn)也有移除主節(jié)點(diǎn),從節(jié)點(diǎn)。
1、移除主節(jié)點(diǎn)

移除節(jié)點(diǎn)使用redis-trib的del-node命令,

[plain] view plain copy

redis-trib del-node 127.0.0.1:7002 ${node-id} 127.0.0.1:7002位集群節(jié)點(diǎn),node-id為要?jiǎng)h除的主節(jié)點(diǎn)。 和添加節(jié)點(diǎn)不同,移除節(jié)點(diǎn)node-id是必需的,測(cè)試刪除7001主節(jié)點(diǎn):

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb del-node 127.0.0.1:7001 <span style="font-size: 14px;">dd19221c404fb2fc4da37229de56bab755c76f2b</span> >>> Removing node <span style="font-size: 14px;">dd19221c404fb2fc4da37229de56bab755c76f2b</span> from cluster 127.0.0.1:7002 [ERR] Node 127.0.0.1:7001 is not empty! Reshard data away and try again. [root@localhost redis-cluster]#

redis cluster提示7001已經(jīng)有數(shù)據(jù)了,不能夠被刪除,需要將他的數(shù)據(jù)轉(zhuǎn)移出去,也就是和新增主節(jié)點(diǎn)一樣需重新分片。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb reshard 127.0.0.1:7002

執(zhí)行以后會(huì)提示我們移除的大小,因?yàn)?001占用了4096個(gè)槽點(diǎn)

[plain] view plain copy

>>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)?

輸入4096

提示移動(dòng)的node id,填寫7009的node id。

[plain] view plain copy

How many slots do you want to move (from 1 to 16384)? 4096 What is the receiving node ID?

需要移動(dòng)到全部主節(jié)點(diǎn)上還是單個(gè)主節(jié)點(diǎn)

[plain] view plain copy

Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1:

將4096個(gè)槽點(diǎn)移動(dòng)到7009上,填寫7001的node id :dd19221c404fb2fc4da37229de56bab755c76f2b

[plain] view plain copy

Source node #1:dd19221c404fb2fc4da37229de56bab755c76f2b Source node #2:done Do you want to proceed with the proposed reshard plan (yes/no)? yes

確認(rèn)之后會(huì)一個(gè)一個(gè)將7001的卡槽移到到7009上。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7009 >>> Performing Cluster Check (using node 127.0.0.1:7009) M: 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 slots:0-6826,10923-12287 (8192 slots) master 3 additional replica(s) S: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) M: dd19221c404fb2fc4da37229de56bab755c76f2b 127.0.0.1:7001 slots: (0 slots) master 0 additional replica(s) S: 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 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. [root@localhost redis-cluster]# 可以看到7001有0個(gè)卡槽,而7009有8192個(gè)卡槽。在執(zhí)行移除操作

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb del-node 127.0.0.1:7002 dd19221c404fb2fc4da37229de56bab755c76f2b >>> Removing node dd19221c404fb2fc4da37229de56bab755c76f2b from cluster 127.0.0.1:7002 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node. [root@localhost redis-cluster]# 已經(jīng)刪除了7001節(jié)點(diǎn)。

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7001 [ERR] Sorry, can't connect to node 127.0.0.1:7001 [root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7009 >>> Performing Cluster Check (using node 127.0.0.1:7009) M: 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 slots:0-6826,10923-12287 (8192 slots) master 3 additional replica(s) S: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 127.0.0.1:7008 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 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. [root@localhost redis-cluster]#

可以看到7001已經(jīng)連接不了;而7001的從節(jié)點(diǎn)7004自動(dòng)分配到了7009主節(jié)點(diǎn)中,7009現(xiàn)在3個(gè)從節(jié)點(diǎn)。

2、移除從節(jié)點(diǎn)

比如刪除7009的7008節(jié)點(diǎn):

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb del-node 127.0.0.1:7009 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 >>> Removing node 2ab1b061c36f30ae35604e9a171ae3afdc3c87e5 from cluster 127.0.0.1:7009 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node. [root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7008 [ERR] Sorry, can't connect to node 127.0.0.1:7008 [root@localhost redis-cluster]# 刪除從節(jié)點(diǎn)比較方便,現(xiàn)在redis-cluster中有3個(gè)主節(jié)點(diǎn),4個(gè)從節(jié)點(diǎn),如下:

[plain] view plain copy

[root@localhost redis-cluster]# ./redis-trib.rb check 127.0.0.1:7009 >>> Performing Cluster Check (using node 127.0.0.1:7009) M: 1f51443ede952b98724fea2a12f61fe710ab6cb1 127.0.0.1:7009 slots:0-6826,10923-12287 (8192 slots) master 2 additional replica(s) S: ee3efb90e5ac0725f15238a64fc60a18a71205d7 127.0.0.1:7007 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 S: 50ce1ea59106b4c2c6bc502593a6a7a7dabf5041 127.0.0.1:7004 slots: (0 slots) slave replicates 1f51443ede952b98724fea2a12f61fe710ab6cb1 M: f9886c71e98a53270f7fda961e1c5f730382d48f 127.0.0.1:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: 1f07d76585bfab35f91ec711ac53ab4bc00f2d3a 127.0.0.1:7002 slots: (0 slots) slave replicates a5db243087d8bd423b9285fa8513eddee9bb59a6 S: 8bb3ede48319b46d0015440a91ab277da9353c8b 127.0.0.1:7006 slots: (0 slots) slave replicates f9886c71e98a53270f7fda961e1c5f730382d48f M: a5db243087d8bd423b9285fa8513eddee9bb59a6 127.0.0.1:7005 slots:6827-10922 (4096 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. [root@localhost redis-cluster]#

ok,測(cè)試到這兒吧。

轉(zhuǎn)載于:https://blog.51cto.com/9280078/2129919

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的Redis Cluster集群的搭建与实践[转]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

97超碰中文字幕 | 亚洲在线黄色 | 精品欧美一区二区在线观看 | 97精品免费视频 | 欧美精品久久久久久久久久久 | 特级毛片网站 | 日本成人中文字幕在线观看 | 久久av在线播放 | 国产成人综合在线观看 | 在线免费观看一区二区三区 | 亚色视频在线观看 | 91毛片在线观看 | 69久久久久久久 | 日韩欧美99 | 一级大片在线观看 | 国产原创av在线 | 免费影视大全推荐 | www免费视频com| 日韩和的一区二在线 | 激情婷婷 | 91日韩在线播放 | 免费进去里的视频 | 成人免费看视频 | 日韩一级电影在线观看 | 超碰在线9 | 久草视频免费 | av免费看网站 | 一区二区精品在线 | 国产精品3 | 手机看片福利 | 91精品国产乱码 | 日韩欧美高清 | 粉嫩aⅴ一区二区三区 | 黄色大全免费网站 | 色先锋资源网 | 麻豆视频免费在线播放 | 天天操天天插 | 国产日韩精品一区二区三区在线 | 国产精品乱码在线 | 国产馆在线播放 | 日韩精品不卡在线观看 | 久久免费视频一区 | 五月婷婷在线综合 | 国产99色| 久久中文字幕导航 | 亚洲一级免费电影 | 亚洲精品在线观看av | 日韩伦理片一区二区三区 | 亚洲伊人第一页 | 久久综合加勒比 | 国产精品一级视频 | 日韩激情av在线 | 亚洲成人av电影 | 九九热国产 | 日日操网 | 特片网久久 | 成人av直播 | 久久视频6 | 首页av在线| 欧美专区日韩专区 | 国产专区精品视频 | 日本久久电影网 | 碰碰影院 | 香蕉免费 | www.黄色片网站 | 国产精品日韩在线 | 午夜视频免费 | 亚洲成人欧美 | 精品福利av| 久草在线视频免费资源观看 | 999日韩 | 精品亚洲欧美一区 | 亚洲精品国偷自产在线99热 | 精品久久99| 婷婷色影院 | 草免费视频 | 欧美精品天堂 | 欧美日韩一区二区三区免费视频 | 免费看污网站 | 在线视频中文字幕一区 | 精品视频在线播放 | 天天综合视频在线观看 | 国产99一区| 亚洲天堂免费视频 | 欧美最猛性xxxxx免费 | 国产成人综合在线观看 | 九9热这里真品2 | 亚洲国产精品va在线看黑人动漫 | 日日狠狠 | 婷婷丁香导航 | 亚洲国产精品一区二区久久hs | av电影中文 | 一级黄网 | 欧美疯狂性受xxxxx另类 | 久久福利小视频 | 亚洲另类人人澡 | 久久精品人人做人人综合老师 | 天天操天天拍 | 亚洲男女精品 | 中文字幕国产视频 | 国产成人亚洲在线观看 | 日韩理论视频 | 国产999在线 | 99视频精品全部免费 在线 | 超碰在线cao | 日本韩国精品一区二区在线观看 | 免费看一及片 | 国产精品久久久久久久久久新婚 | 国产精品美女久久久久久免费 | 91精品1区2区 | 国产麻豆果冻传媒在线观看 | 亚洲视频 视频在线 | 欧美日韩国产亚洲乱码字幕 | 三级动态视频在线观看 | 福利视频午夜 | 国产精品九九九九九 | av在线收看 | 在线观看视频免费大全 | 欧美一级免费在线 | 人人看人人草 | 99久久精品国产网站 | 日日干夜夜爱 | 狠狠色丁香婷婷综合久小说久 | 免费在线观看av网站 | 91视频免费看网站 | 黄av在线 | 人人爽人人爱 | 国产69熟 | 免费色网 | 天天色天天艹 | 月丁香婷婷 | 国产精品综合在线 | 国产精品99久久久久久久久 | 国产黄色免费在线观看 | 一色屋精品视频在线观看 | 精品视频在线看 | 国产福利在线免费观看 | 国产三级精品在线 | 三级黄色a | 久久综合九色综合97婷婷女人 | 国产69久久精品成人看 | 1000部国产精品成人观看 | 99热这里只有精品免费 | 亚洲精品网页 | 亚洲免费视频在线观看 | 99在线精品免费视频九九视 | 99久久er热在这里只有精品15 | 亚洲精品视频一二三 | 中文字幕中文字幕在线中文字幕三区 | 日韩高清dvd | 亚洲色图av| 9色在线视频 | 成人在线观看免费视频 | 欧美精品v国产精品v日韩精品 | 日韩av片免费在线观看 | 高清视频一区二区三区 | 黄网站app在线观看免费视频 | 久久精品国产久精国产 | 中文字幕国产一区 | 尤物九九久久国产精品的分类 | 免费在线观看av网址 | 黄色成人影院 | 午夜18视频在线观看 | 伊人久久在线观看 | 亚洲高清精品在线 | 四虎精品成人免费网站 | 久久久久国| 国产区精品区 | 国产视频精品网 | 高清av在线免费观看 | 欧美日韩亚洲第一 | 免费成人黄色片 | 欧美整片sss| h视频在线看| 国产字幕在线播放 | 久久少妇av | 久久九九网站 | 17婷婷久久www | 国产精品日韩欧美一区二区 | 日韩精品高清视频 | 2018亚洲男人天堂 | 四虎在线影视 | 亚洲欧美日韩精品一区二区 | 天天综合网天天综合色 | 九九精品视频在线看 | 好看av在线 | 国产精品久久精品国产 | 国产专区一 | 99精品视频在线观看免费 | 亚洲最新av在线网站 | 日韩高清国产精品 | 好看的国产精品视频 | 亚洲九九爱 | 91久久精品一区二区二区 | 91九色蝌蚪在线 | 日韩一级网站 | 精品国产乱码久久久久久三级人 | 国产精品久久久久久久婷婷 | 激情小说 五月 | 国产99久久久精品 | 久久久久久高潮国产精品视 | 激情伊人| 国产精品18久久久久久首页狼 | 日本h在线播放 | 国产精品久久久久久久久久久不卡 | 中文字幕欧美日韩va免费视频 | 二区三区在线 | 青草草在线 | 免费在线一区二区 | 日韩高清精品免费观看 | 国产色网 | 九九久久免费视频 | 日韩精品极品视频 | www日日 | 国产日韩精品一区二区三区在线 | 精品国产区| 在线观看中文字幕 | 综合色在线观看 | 中文字幕一区二区三区久久蜜桃 | 中文字幕网址 | 国产不卡在线 | 美女视频黄免费的 | 婷婷久草| 国产亚洲欧美精品久久久久久 | 免费日韩av片 | 久久久精品国产免费观看同学 | 最近日韩中文字幕中文 | 久久国产精品99久久久久 | 欧美日韩在线精品一区二区 | 麻豆激情电影 | 久久免费视频在线观看 | 久草com | 亚洲精品h| 在线久热 | 丁香婷婷综合网 | 日日夜夜av | 亚洲精品在线免费播放 | 亚洲一区二区三区在线看 | 免费在线一区二区 | 日韩精品欧美专区 | 日本久热 | 五月综合久久 | 丁香六月五月婷婷 | 亚洲综合狠狠干 | 欧美永久视频 | 亚洲精品中文字幕视频 | 狠狠狠综合 | 最新日本中文字幕 | 天天干天天干天天 | 国产日韩高清在线 | 久久综合九色综合网站 | 久久久免费观看 | 久久成人福利 | 99精品久久只有精品 | 日韩在线电影 | 国产在线国产 | 综合铜03 | www.亚洲视频.com | 久久乐九色婷婷综合色狠狠182 | 国内精品久久久久久中文字幕 | 日本午夜在线观看 | 国产精品一区二区三区在线免费观看 | 毛片永久免费 | 久久久久亚洲国产精品 | 在线观看免费福利 | 91免费观看视频在线 | 亚洲va在线va天堂va偷拍 | 人人干,人人爽 | 99精品在线直播 | 国产精品18久久久久久久 | 国产成人精品一区二区 | 久久99热精品这里久久精品 | 免费在线观看不卡av | 久久综合亚洲鲁鲁五月久久 | 高清一区二区三区 | 最新av网址大全 | 99久热精品 | 91在线观看欧美日韩 | 日本黄色免费观看 | 国产在线精品一区二区 | 久久爱资源网 | 六月丁香久久 | 欧美成人猛片 | 久久精品香蕉视频 | 日韩免费看的电影 | 日本久久精 | 免费在线一区二区三区 | 亚洲国产免费网站 | 911亚洲精品第一 | 精品国产免费看 | 六月丁香综合网 | 天天草天天 | 黄色精品久久久 | 不卡的一区二区三区 | 中文字幕一区二区三区视频 | 色综合久久88色综合天天6 | 国产成人久久久久 | 日韩激情片在线观看 | 99人成在线观看视频 | 亚洲人av免费网站 | 中文字幕永久在线 | 国产老妇av | 日韩精品一卡 | 亚av在线| 国产在线不卡视频 | 草久视频在线 | 国产黄色大片免费看 | 女人18片 | 国产精品久久久久久久久久三级 | 又大又硬又黄又爽视频在线观看 | 久久久999免费视频 日韩网站在线 | 人人看人人艹 | 西西444www高清大胆 | 99这里有精品 | 欧美成人理伦片 | 国产精品久久久久久婷婷天堂 | 午夜电影 电影 | 一区二区三区免费播放 | www亚洲视频| 国产午夜精品在线 | 91福利视频网站 | 亚洲天堂网视频在线观看 | 国产99一区视频免费 | 日韩av片无码一区二区不卡电影 | 国产精品午夜在线观看 | 国产精品乱码久久 | 国产视频中文字幕 | 97视频免费在线看 | 成人av片免费观看app下载 | 视频一区在线播放 | 天天操操操操操 | 国产精品自拍av | 亚洲六月丁香色婷婷综合久久 | 视频成人| 狠狠操操 | 婷婷在线五月 | 久草视频在线资源 | 9i看片成人免费看片 | 久久久视频在线 | 51久久夜色精品国产麻豆 | 日韩特级黄色片 | 婷婷丁香花五月天 | 91片在线观看 | 国语精品视频 | 国产小视频免费在线观看 | 在线国产观看 | 午夜影院先 | 亚洲最新在线视频 | www.色午夜| av片子在线观看 | 久久久国产在线视频 | 香蕉国产91| 91激情小视频 | 五月天丁香综合 | 91精品色| 久久免费视频国产 | 欧美另类xxxx| 国产精品久久久久久久久久久久 | 国产精品免费观看久久 | 91精品啪在线观看国产 | 日韩二区在线 | 亚洲最大的av网站 | 日韩欧美一级二级 | 奇米网777 | 国产成人精品一区二区三区福利 | 亚洲国产成人精品在线观看 | 国产精品一区免费看8c0m | 久久国产精品久久w女人spa | 国产一级免费观看视频 | 精品国产伦一区二区三区免费 | 国产一二三在线视频 | 国产综合精品久久 | 97精品一区 | 97精品免费视频 | 九九在线播放 | 国产亚洲精品日韩在线tv黄 | 999久久精品| 日本乱码在线 | 91在线观看视频 | 免费精品在线观看 | 久久婷婷色 | 国产中文字幕网 | 久久精品视频网址 | 天天操天天综合网 | caobi视频| 992tv成人免费看片 | 成人h在线观看 | av福利网址导航 | 99精品免费在线观看 | 亚洲成a人片综合在线 | 日韩激情片在线观看 | 99精品国产免费久久久久久下载 | 成人欧美一区二区三区黑人麻豆 | av色影院| 91精品国产99久久久久久久 | 成人91在线观看 | 久久国产精品99久久久久 | 少妇视频在线播放 | 国产精品一级视频 | 久久久精品视频网站 | 亚在线播放中文视频 | 九九免费观看视频 | 国产va饥渴难耐女保洁员在线观看 | 一区中文字幕在线观看 | 久草在线免费看视频 | 香蕉久久久久久久 | 天天天射 | 99视频在线免费播放 | 久久久综合精品 | 日日干天天爽 | 国产精品久久久久久久久大全 | 日韩欧美电影网 | 成人在线黄色电影 | 三级a视频 | 久草精品电影 | 99久久精品免费看 | 91亚色免费视频 | 黄色小说网站在线 | 精品在线视频一区二区三区 | 亚洲美女久久 | 国产亚洲精品久久久久久无几年桃 | 欧美久久久久久久久久久久久 | 美女一区网站 | 一级免费片 | 国产一级在线免费观看 | 黄色a大片 | 亚洲美女视频在线 | 中文字幕123区 | 久久精品五月 | 在线影院中文字幕 | 狠色狠色综合久久 | 国产高清久久久久 | 久久久久国产成人精品亚洲午夜 | 欧美激情第28页 | 久久国产品 | 日韩在线观看一区二区三区 | 国产视频精品免费播放 | 视频国产在线观看18 | 欧美日韩国产色综合一二三四 | 国产日本在线播放 | 狠狠伊人 | 免费成人在线电影 | 五月婷婷,六月丁香 | 国产亚洲午夜高清国产拍精品 | 91精品导航| 日日躁你夜夜躁你av蜜 | 欧美日韩一区二区三区不卡 | 日韩视频欧美视频 | 三级黄色免费 | 狠狠色噜噜狠狠 | 国产精品视频永久免费播放 | 色婷婷狠狠五月综合天色拍 | 狠狠操狠狠操 | 国产精品一区二区在线看 | av在线成人| 国产精品久久久777 成人手机在线视频 | 国产精品毛片久久 | 免费网站在线观看成人 | 97超碰国产精品女人人人爽 | 超碰在线天天 | 麻豆成人精品 | 成年人毛片在线观看 | 国产精品精品久久久久久 | 国产一级视频在线观看 | 日躁夜躁狠狠躁2001 | 国产精品电影在线 | 国产日韩精品在线 | 91九色视频国产 | 国产成免费视频 | .国产精品成人自产拍在线观看6 | 成人av高清在线观看 | 美女福利视频一区二区 | 五月激情亚洲 | 国产精彩视频一区 | 最近日本字幕mv免费观看在线 | 99久久精品免费视频 | 2019精品手机国产品在线 | 成人av高清在线观看 | 91亚·色| 在线观看免费国产小视频 | 色五婷婷| 中文字幕频道 | 天天操导航 | 亚洲精品男人天堂 | 国产在线毛片 | 91精品国产欧美一区二区 | a在线v | 亚洲在线视频免费 | 91av在线不卡| 五月天国产精品 | 久久免费福利视频 | 美女视频免费一区二区 | 久久综合久久综合久久综合 | 亚洲婷婷免费 | 激情小说久久 | 欧美99精品 | 九九在线国产视频 | 91成人免费在线 | 999一区二区三区 | 亚洲一区免费在线 | 在线中文字幕播放 | 久热av| 四虎成人免费影院 | 中文字幕一区二区在线播放 | 久久手机免费观看 | 人人爽人人爽人人爽人人爽 | 亚洲精品网站 | 精品国产精品一区二区夜夜嗨 | wwxxx日本| 玖玖999| 免费中文字幕 | 在线观看视频福利 | 一区二区三区四区精品视频 | 日韩激情综合 | 亚洲精品一区二区三区新线路 | 亚洲精品久久久久58 | 天天操天天是 | 国产高清视频在线免费观看 | 免费国产一区二区 | 欧美电影在线观看 | 国产精品不卡一区 | 国产又黄又爽又猛视频日本 | 久久九精品 | av理论电影 | 精品国产片 | 久久天天操 | 亚洲资源在线网 | 久草香蕉在线视频 | 久久午夜影院 | 99精品免费久久久久久久久 | 91麻豆精品国产自产在线游戏 | 韩国av一区二区三区 | 国产一区在线免费 | 国内精品小视频 | 伊人射 | 午夜精品久久久久久久爽 | 国产精品成人久久久久久久 | 国产69精品久久99不卡的观看体验 | 国产精品中文字幕在线播放 | 久久免费精品一区二区三区 | 99久久99久久精品国产片果冰 | 日韩三级久久 | 激情欧美xxxx | 最新av电影网址 | 亚洲精品国产精品国自产观看 | av电影免费在线 | 黄色av成人在线观看 | 欧美 日韩 国产 中文字幕 | 69人人| 激情片av| 天天干,天天射,天天操,天天摸 | 成人a免费视频 | 中文字幕在线视频网站 | 天天插天天干 | 免费精品在线 | 91传媒91久久久 | 欧美一区二区在线 | 久久久久亚洲精品国产 | 精品福利网站 | 国产精品一区久久久久 | 久久a v视频| 人人澡人人舔 | 久久成人国产 | 久久福利影视 | 久久视频在线免费观看 | 午夜av一区 | 日韩在线三级 | 亚洲高清不卡av | 欧美看片| 亚洲成av人片 | 亚洲电影在线看 | 蜜臀av夜夜澡人人爽人人桃色 | 一区二区精品在线 | 成人av在线一区二区 | 九九九九精品九九九九 | 少妇搡bbbb搡bbb搡忠贞 | 99精品视频网站 | 日韩在线观看a | 亚洲国产精品久久久久久 | 天天在线操 | 久久人人插 | 国产视频一区精品 | 麻豆成人精品视频 | 国产精品福利午夜在线观看 | 九九热精品在线 | 天堂av在线免费观看 | 国产黄色片久久久 | 亚洲精品乱码白浆高清久久久久久 | 在线观看一二三区 | www.色五月| 91在线观看视频网站 | 亚洲第一伊人 | 久久在现视频 | 97超级碰碰碰碰久久久久 | 在线视频麻豆 | 激情网在线观看 | 99久久精品久久久久久清纯 | 手机在线看永久av片免费 | 国产色女人| 999精品视频 | 91精品久久久久久久91蜜桃 | 国产精品久久一区二区三区不卡 | 亚洲人精品午夜 | 午夜精品999| av免费在线网 | 日韩一区二区三区免费视频 | 91免费观看视频网站 | 成人午夜影视 | 四虎8848免费高清在线观看 | 国产精品毛片一区二区在线 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | av动图| 精品国产一区二区三区久久久久久 | 九九综合久久 | 欧美一区二区三区特黄 | 欧美国产三区 | 91视频下载 | 天天艹天天爽 | 日韩在线大片 | 亚洲一二三久久 | 国产精品久久久久久久午夜片 | 色婷婷亚洲综合 | 久久久久久久久影院 | 国产精品久久三 | 免费成人av在线看 | 久久香蕉电影网 | 人人射人人澡 | 中文电影网 | 最近中文字幕免费av | 精品视频免费观看 | 亚洲性视频 | 日韩手机在线观看 | 亚洲人在线7777777精品 | av在线一级| 日本中文字幕在线视频 | 欧美日韩一区二区三区在线观看视频 | 国产一区高清在线 | 国产高清视频网 | 色网站在线观看 | 天天操比| 久久电影日韩 | av片在线观看 | 精品国产资源 | 免费污片 | 99在线高清视频在线播放 | 国产一二三四在线视频 | 在线视频 一区二区 | 五月婷婷久久综合 | 久操久| 国产黄色大全 | 日韩在线高清视频 | 亚洲精品麻豆视频 | 国产精品久久久久久久久久久免费看 | 亚洲国产字幕 | 91精品视频在线 | 日韩一区二区三区在线观看 | 久久精品一区二区国产 | 91免费版成人 | 日本超碰在线 | 亚洲欧洲精品久久 | 91精品视频在线看 | 亚洲人天堂 | 国产高清在线免费观看 | 人人讲下载 | 久久99久久99精品免费看小说 | 成年人在线免费看视频 | 亚洲一区精品二人人爽久久 | 国产中文字幕久久 | 正在播放五月婷婷狠狠干 | 丝袜+亚洲+另类+欧美+变态 | 日韩高清免费电影 | 色婷婷久久久综合中文字幕 | 99久久久久 | 欧美视频xxx | 午夜久久电影网 | www在线观看视频 | 色婷婷成人网 | 久草久| 欧美一级视频一区 | 波多野结衣资源 | 欧美色888 | 亚洲毛片一区二区三区 | 激情喷水 | 91桃色在线播放 | 99精品在线免费视频 | 免费高清在线观看成人 | 国产午夜三级一二三区 | 永久免费精品视频网站 | 粉嫩av一区二区三区四区在线观看 | 中文字幕91 | avove黑丝| 日韩电影在线一区 | 亚洲国产视频在线 | 免费美女久久99 | 激情电影影院 | 婷婷综合视频 | 激情视频在线高清看 | 欧美激情精品久久久久久变态 | 日日日日 | 成人在线视 | 500部大龄熟乱视频 欧美日本三级 | 999色视频| 麻豆免费视频网站 | 欧美一区二区三区在线观看 | 欧美 日韩 性 | 99tvdz@gmail.com| 麻豆91精品91久久久 | 国产男女无遮挡猛进猛出在线观看 | 久久久久免费看 | 日韩电影在线观看一区二区 | 亚州天堂 | 日韩理论在线视频 | www黄com| a久久免费视频 | 亚洲精品美女久久久久 | 久久国产网 | 91精彩视频在线观看 | 中文亚洲欧美日韩 | 欧美精品三级 | 激情电影在线观看 | 国产资源在线播放 | 在线观看免费中文字幕 | 中文字幕乱码视频 | 亚洲天堂精品视频 | 午夜视频黄| 狠狠躁日日躁狂躁夜夜躁av | 久久久久久高潮国产精品视 | 久久久wwww| 黄色www| 中国一级片在线观看 | 激情婷婷色 | 亚洲va综合va国产va中文 | 九九国产精品视频 | 九九热视频在线播放 | 亚洲乱码久久久 | 91精品国产成人www | 91av视频网 | 99久久999久久久精玫瑰 | 精品美女国产在线 | 中文字幕在线视频一区二区 | 在线观看免费成人av | 色综合网| 国产一区二区三精品久久久无广告 | 99久久精品免费看国产麻豆 | 天天天天色综合 | av电影中文字幕 | 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美精品九九99久久 | 久久开心激情 | 亚洲小视频在线观看 | 免费aa大片 | 五月天网页 | 久久久久免费电影 | 在线小视频 | 久久经典国产 | 韩国精品福利一区二区三区 | 国产流白浆高潮在线观看 | 午夜久久| 96亚洲精品久久久蜜桃 | 国产精品自产拍在线观看网站 | 二区在线播放 | 五月激情站 | 亚洲女在线| 日日夜夜精品 | 国产在线视频导航 | 成人免费网站在线观看 | 国产精品久久久久久一区二区三区 | 人人干天天干 | 韩国av免费看| 欧美精品在线一区二区 | 日韩一级电影网站 | 成年人视频在线免费 | 欧美精品天堂 | 久久不射网站 | 麻豆视频免费版 | 国产午夜精品一区 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 爱射综合 | 天天摸夜夜添 | 午夜久久 | 天天插综合 | 天天操天天摸天天干 | 午夜av免费在线观看 | 中文字幕欧美日韩va免费视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | 日韩av手机在线观看 | 免费看片色 | 黄色a级片在线观看 | 四虎成人精品永久免费av | 亚洲精品美女在线观看播放 | 人人狠狠综合久久亚洲 | 久久开心激情 | 亚洲男男gaygayxxxgv | 91一区啪爱嗯打偷拍欧美 | 中文字幕在线观看网站 | 成人一区二区在线 | 狠狠色综合网站久久久久久久 | 久久成人麻豆午夜电影 | 成人免费xyz网站 | 开心激情婷婷 | 亚洲国产资源 | 国产精品视频内 | 亚洲aⅴ乱码精品成人区 | 综合色站 | 精品久久久久久电影 | 色综合久久久 | 成人永久免费 | 国产精品久久久久久久久久新婚 | av久久久久久 | 91看片在线观看 | 国产一区二区久久 | 丁香花中文字幕 | 成人一区二区三区在线 | 成人在线免费看 | 国产精品久久久久久久久久新婚 | 国产一级精品在线观看 | 五月婷婷一区二区三区 | 天堂久久电影网 | 激情图片区 | 亚洲人成在| 成片视频免费观看 | 狠狠色狠狠色综合日日92 | 丁香激情综合久久伊人久久 | www.日韩免费 | 9免费视频 | 丁香色综合 | 91九色国产 | 九九九电影免费看 | 中国美女一级看片 | 中文伊人 | 超碰av在线 | 久久精品视频在线 | 国产精品一区二区三区在线免费观看 | 国产精品久99 | 国产原创91 | 中文字幕免费久久 | 五月天六月婷婷 | 日韩专区在线观看 | 久久精品网| 91传媒免费观看 | 久久九九国产视频 | 国产黄在线播放 | 欧美另类交在线观看 | 精品国产自 | 午夜视频在线观看一区二区三区 | 日韩一级电影在线 | 高清av免费观看 | 国产色婷婷在线 | 国产成人精品一区二区三区在线观看 | 五月婷香| 国产色秀视频 | 成人av免费电影 | 免费黄色一区 | 中文字幕超清在线免费 | 亚洲精品在线免费播放 | 97超碰成人 | 国产69精品久久app免费版 | 91视频在线播放视频 | 国产手机视频在线观看 | 狠狠网亚洲精品 | 国产经典三级 | 狠狠干,狠狠操 | 黄色av网站在线观看免费 | 91福利国产在线观看 | 日韩在线观看一区二区三区 | 婷婷视频在线观看 | 免费av网址大全 | 亚州性色 | 超碰99在线| 日韩中文久久 | 9免费视频 | 在线一区av | 国产护士hd高朝护士1 | 国产成人一区二区啪在线观看 | 91在线超碰 | 国产一区私人高清影院 | 亚洲天堂精品 | av免费线看| 久久久久久久久久久久99 | 91精品国| 中文字幕一区二区三区在线视频 | 丁香六月久久综合狠狠色 | 国产成人av网站 | 6080yy精品一区二区三区 | 六月丁香色婷婷 | 久久无码精品一区二区三区 | 涩涩成人在线 | 午夜精品久久久久久久久久久 | 亚洲视频www | 欧美日韩在线视频观看 | 99久久激情视频 | 精品一二三四在线 | 午夜精品电影 | 欧美一级片免费 | 国产视频一区在线免费观看 | 91人人爽人人爽人人精88v | 欧美另类美少妇69xxxx | 天天操天天干天天爱 | 超碰在线1 | 成年在线观看 | 97人人超| 国产99久久久国产精品成人免费 | 欧美日韩中文在线视频 | 韩日电影在线观看 | av片在线看 | 国产精品自在欧美一区 | 在线国产能看的 | 久久五月天色综合 | 在线播放精品一区二区三区 | 久久国产影院 | 欧美精品九九99久久 | 成人a在线观看高清电影 | 国产中年夫妇高潮精品视频 | 亚洲色图22p| 日韩av资源站 | 97精品国产91久久久久久 | 午夜av一区 | 99久久夜色精品国产亚洲96 | 91干干干 | 中午字幕在线观看 | 天天干天天草天天爽 | 波多野结衣在线视频一区 | 国产精品videossex国产高清 | 亚洲夜夜爽 | 久久久久黄色 | 成人黄色大片在线免费观看 | 色多多污污在线观看 | 久久电影网站中文字幕 | www.av在线.com | 国产精品视频你懂的 | 色婷婷狠狠五月综合天色拍 | 国产精品每日更新 | 日韩在线短视频 | 日韩特级黄色片 | 精品99999| 九九热精品视频在线播放 | 一级大片在线观看 | 麻豆视频一区二区 | 久草免费在线视频观看 | 国产午夜精品一区二区三区 | 久久久久女人精品毛片九一 | 91精品国产成人www | 91在线视频免费观看 | 又黄又爽又无遮挡免费的网站 | 91夜夜夜 | 国产区精品视频 | 精品99免费 | 在线亚洲播放 | 久久精品中文 | 毛片网免费 | 亚洲韩国一区二区三区 | 久久久久久免费毛片精品 | 99国产成+人+综合+亚洲 欧美 | 超碰97国产精品人人cao | 成人午夜电影久久影院 | 9ⅰ精品久久久久久久久中文字幕 | 国产福利91精品一区 | 色偷偷男人的天堂av | 久久激情视频免费观看 | 91成人在线网站 | 91精品网站在线观看 | 欧美日韩中文字幕视频 | 国产亚洲亚洲 | 日韩精品一区二区久久 | 国产高清视频免费观看 | 在线观看911视频 | 又黄又爽又刺激 | 亚洲欧美偷拍另类 | 国产美女精品人人做人人爽 | 久久久久久久国产精品视频 | 日韩精品在线观看视频 | 亚洲激情视频在线 | 婷婷五天天在线视频 | 精品亚洲欧美无人区乱码 | 久草在线综合网 | 欧美夫妻生活视频 | 久久久精品国产一区二区 | 久草视频在 | 久久久免费观看完整版 | 国产黄色片一级三级 | 日韩高清在线一区二区三区 | 国内久久久久 | 久草在线视频在线 | 久久这里有精品 | 91精品人成在线观看 | avove黑丝| 亚洲黄色免费网站 | 国产精品久久久久久模特 | www视频在线免费观看 | 国产在线精品一区二区三区 | 成人黄色小说在线观看 | 在线探花| 亚洲欧洲精品视频 | 免费看黄网站在线 | 久久99国产精品 | 人人狠| 香蕉视频4aa | 成人一区电影 |