婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解三分鐘快速搭建分布式高可用的Redis集群

詳解三分鐘快速搭建分布式高可用的Redis集群

熱門標簽:鄭州人工智能電銷機器人系統 山東外呼銷售系統招商 宿遷便宜外呼系統平臺 魔獸2青云地圖標注 超呼電話機器人 日本中國地圖標注 貴州電銷卡外呼系統 十堰營銷電銷機器人哪家便宜 北京400電話辦理收費標準

這里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的專用集群方案,有效地解決了Redis分布式方面的需求。當單機內存、并發、流量等遇到瓶頸的時候,可以采用這種Redis Cluster方案進行解決。

分區規則

Redis Cluster采用虛擬槽(slot)進行數據分區,即使用分散度良好的哈希函數把所有鍵映射到一個固定范圍的整數集合里,這里的整數就是槽(slot)。Redis Cluster槽的范圍是0~16383,計算公式:slot=CRC16(key) 16383。

白嫖小貼士:CRC16是一種高質量的哈希算法,可以使每個槽所映射的鍵通常比較均勻。

當集群中有3個節點時,每個節點平均大概負責5461個槽以及槽所映射的鍵值數據。這樣一來,可以解耦數據與節點之間的關系,簡化節點擴容和縮容的難度。節點自身維護槽的映射關系,不需要客戶端或代理服務維護分區信息。

不過,Redis Cluster相對于單機還是存在一些限制的,比如:

  • 批量操作鍵支持有限,僅支持具有相同槽的鍵進行批量操作。
  • 事務操作鍵支持有限,僅支持在同一個節點上多個鍵的事務操作。
  • 不支持多個數據空間。單機Redis可以支持16個數據庫,而Cluster模式下只能使用一個數據庫空間。

扯了這么多Redis Cluster的分區規則,下面我們開始步入正題。

手動搭建

把Redis Cluster搭建起來總共幾步?答:三步!第一步把冰箱門打開。第二步把大象關進去。第三步把冰箱門帶上。不好意思,段子暴露年齡了。集群搭建需要以下三個步驟:

  • 準備節點。
  • 節點握手。
  • 分配槽。

Redis Cluster由多個節點組成,節點數量至少有6個才能組成一個完整高可用的集群,其中有3個主節點和3個從節點,我們就以此為例搭建一個Redis Cluster。

準備節點

首先,為6個節點(同一臺機器上的6380、6381、6382、6383、6384、6385端口)分別創建配置文件,以6380端口的節點為例:

# 節點端口
port 6380
#日志文件
logfile "log/redis-6380.log"
# 開啟集群模式
cluster-enabled yes
# 集群配置文件
cluster-config-file "data/nodes-6380.conf"

保持文件名為redis-6380.conf,其他節點的配置文件替換成各自的端口。準備好配置文件后啟動所有節點,命令如下:

src/redis-server conf/redis-6380.conf 
src/redis-server conf/redis-6381.conf 
src/redis-server conf/redis-6382.conf 
src/redis-server conf/redis-6383.conf 
src/redis-server conf/redis-6384.conf 
src/redis-server conf/redis-6385.conf 

檢測日志是否正確,以下是6380端口的節點的日志:

 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
 # Redis version=4.0.14, bits=64, commit=00000000, modified=0, pid=3031, just started
 # Configuration loaded
 * No cluster configuration found, I'm df1ac987f47dea35f1d0a83c3b405f0ef86892ab
 * Running mode=cluster, port=6380.

6380端口的節點啟動成功,第一次啟動時如果沒有集群配置文件,Redis會自動創建一個。6380端口的節點創建的集群配置文件如下:

df1ac987f47dea35f1d0a83c3b405f0ef86892ab :0@0 myself,master - 0 0 0 connected
vars currentEpoch 0 lastVoteEpoch 0

集群文件中記錄的集群的狀態,這里最重要的是節點ID,它是一個40位的16進制字符串,用于唯一標識集群中的這個節點。同樣,也可以通過cluster nodes命令查看集群節點狀態。比如在6380端口的節點上執行命令:

127.0.0.1:6380> cluster nodes
df1ac987f47dea35f1d0a83c3b405f0ef86892ab :6380@16380 myself,master - 0 0 0 connected

目前,我們已經成功啟動了6個節點,但是它們只能識別自己的節點信息,互相之間并不認識。下面我們通過節點握手讓這6個節點互相之間建立聯系從而組成一個集群。

節點握手

節點握手是一些運行在集群模式下的節點通過Gossip協議互相通信,達到感知彼此的過程。

白嫖小貼士:Gossip協議是基于流行病傳播方式的節點或者進程之間信息交換的協議,在分布式系統中被廣泛使用。

節點握手通過客戶端執行cluster meet命令實現,它是一個異步命令,執行之后立刻返回,在Redis內部異步發起與目標節點的握手通信,該命令的語法如下:

cluster meet 目標節點IP 目標節點端口

把6個節點加到一個集群中:

127.0.0.1:6380> cluster meet 127.0.0.1 6381
OK
127.0.0.1:6380> cluster meet 127.0.0.1 6382
OK
127.0.0.1:6380> cluster meet 127.0.0.1 6383
OK
127.0.0.1:6380> cluster meet 127.0.0.1 6384
OK
127.0.0.1:6380> cluster meet 127.0.0.1 6385
OK

只需要在集群中任意節點上執行cluster meet命令加入新的節點,握手狀態會通過消息在集群中傳播,其他節點也會自動發現新節點并與之發起握手流程。

我們再執行一下cluster nodes命令,檢查一下6個節點是否已經組成集群:

127.0.0.1:6380> cluster nodes
1e1f45677d7b9b0130d03193f0bcec34578ac47d 127.0.0.1:6385@16385 master - 0 1586617919021 5 connected
df1ac987f47dea35f1d0a83c3b405f0ef86892ab 127.0.0.1:6380@16380 myself,master - 0 1586617916000 2 connected
5846b66ebe4fb4a5dcfd035652cc471f7e412752 127.0.0.1:6381@16381 master - 0 1586617917005 1 connected
a435cf98c3444b0b110a224401e397a107c453ef 127.0.0.1:6384@16384 master - 0 1586617914988 4 connected
71e0e9e9a6f0c7c85dbe0d396846a9072625c5e8 127.0.0.1:6383@16383 master - 0 1586617918013 3 connected
e25590603c7a254cce43aa8437861c5c425d753d 127.0.0.1:6382@16382 master - 0 1586617916000 0 connected

可以看到,6個節點都在集群中了。不過,此時因為還沒有為集群中的節點分配槽,集群還處于下線狀態,所有的數據讀寫都是被禁止的。比如:

127.0.0.1:6380> set onemore study
(error) CLUSTERDOWN Hash slot not served

接下來,我們為集群中的節點分配槽。

分配槽

我們把6380、6382、6384端口的節點作為主節點,負責處理槽和相關數據;6381、6383、6385端口的節點分別作為從節點,負責故障轉移。先把16384個槽平均分配給6380、6382、6384端口的節點,為節點分配槽是通過cluster addslots命令實現:

# ./redis-cli -h 127.0.0.1 -p 6380 cluster addslots {0..5461}
OK
# ./redis-cli -h 127.0.0.1 -p 6382 cluster addslots {5462..10922}
OK
# ./redis-cli -h 127.0.0.1 -p 6384 cluster addslots {10923..16383}
OK

我們再執行一下cluster nodes命令,檢查一下槽是否已經分配:

127.0.0.1:6380> cluster nodes
1e1f45677d7b9b0130d03193f0bcec34578ac47d 127.0.0.1:6385@16385 master - 0 1586619468000 5 connected
df1ac987f47dea35f1d0a83c3b405f0ef86892ab 127.0.0.1:6380@16380 myself,master - 0 1586619464000 2 connected 0-5461
5846b66ebe4fb4a5dcfd035652cc471f7e412752 127.0.0.1:6381@16381 master - 0 1586619467000 1 connected
a435cf98c3444b0b110a224401e397a107c453ef 127.0.0.1:6384@16384 master - 0 1586619467000 4 connected 10923-16383
71e0e9e9a6f0c7c85dbe0d396846a9072625c5e8 127.0.0.1:6383@16383 master - 0 1586619467348 3 connected
e25590603c7a254cce43aa8437861c5c425d753d 127.0.0.1:6382@16382 master - 0 1586619468355 0 connected 5462-10922

再使用cluster replicate命令把一個節點變成從節點.,這個命令必須在從節點上運行,它的語法是:

cluster replicate 主節點ID

把6381、6383、6385端口的節點變成對應6380、6382、6384端口的節點的從節點:

# ./redis-cli -h 127.0.0.1 -p 6381
127.0.0.1:6381> cluster replicate df1ac987f47dea35f1d0a83c3b405f0ef86892ab
OK
127.0.0.1:6381> exit
# ./redis-cli -h 127.0.0.1 -p 6383
127.0.0.1:6383> cluster replicate e25590603c7a254cce43aa8437861c5c425d753d
OK
127.0.0.1:6383> exit
# ./redis-cli -h 127.0.0.1 -p 6385
127.0.0.1:6385> cluster replicate a435cf98c3444b0b110a224401e397a107c453ef
OK
127.0.0.1:6385> exit

我們再執行一下cluster nodes命令,檢查一下集群狀態和主從關系:

127.0.0.1:6380> cluster nodes
df1ac987f47dea35f1d0a83c3b405f0ef86892ab 127.0.0.1:6380@16380 myself,master - 0 1586620148000 2 connected 0-5461
5846b66ebe4fb4a5dcfd035652cc471f7e412752 127.0.0.1:6381@16381 slave df1ac987f47dea35f1d0a83c3b405f0ef86892ab 0 1586620150000 2 connected
e25590603c7a254cce43aa8437861c5c425d753d 127.0.0.1:6382@16382 master - 0 1586620151000 0 connected 5462-10922
71e0e9e9a6f0c7c85dbe0d396846a9072625c5e8 127.0.0.1:6383@16383 slave e25590603c7a254cce43aa8437861c5c425d753d 0 1586620152220 3 connected
a435cf98c3444b0b110a224401e397a107c453ef 127.0.0.1:6384@16384 master - 0 1586620150000 4 connected 10923-16383
1e1f45677d7b9b0130d03193f0bcec34578ac47d 127.0.0.1:6385@16385 slave a435cf98c3444b0b110a224401e397a107c453ef 0 1586620149000 5 connected

自此,RedisCluster已經手動搭建完成。手動搭建可以理解集群建立的流程和細節,不過大家也會發現手動搭建有很多步驟,當集群的節點比較多的時候,肯定會讓人頭大。所以Redis官方提供了redis-trib.rb工具,可以讓我們快速地搭建集群。

自動搭建

redis-trib.rb是使用Ruby開發的Redis Cluster的管理工具,不需要額外下載,默認位于源碼包的src目錄下,但因為該工具是用Ruby開發的,所以需要準備相關的依賴環境。

環境準備

安裝Ruby:

yum -y install zlib-devel
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz
tar xvf ruby-2.5.1.tar.gz
cd ruby-2.5.1/
./configure -prefix=/usr/local/ruby
make
make install
cd /usr/local/ruby/
cp bin/ruby /usr/local/bin
cp bin/gem /usr/local/bin

安裝rubygem redis依賴:

wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem

安裝redis-trib.rb:

cp src/redis-trib.rb /usr/local/bin

執行redis-trib.rb命令確認一下環境是否準備正確:

# redis-trib.rb help
Usage: redis-trib command> options> arguments ...>

 create     host1:port1 ... hostN:portN
         --replicas arg>
 check      host:port
 info      host:port
 fix       host:port
         --timeout arg>
 reshard     host:port
         --from arg>
...此處省略一萬個字...

搭建集群

像前面的內容講的,準備好節點配置并啟動:

src/redis-server conf/redis-7380.conf 
src/redis-server conf/redis-7381.conf 
src/redis-server conf/redis-7382.conf 
src/redis-server conf/redis-7383.conf 
src/redis-server conf/redis-7384.conf 
src/redis-server conf/redis-7385.conf 

使用redis-trib.rb create命令完成節點握手和槽分配的工作,命令如下:

redis-trib.rb create --replicas 1 127.0.0.1:7380 127.0.0.1:7382 127.0.0.1:7384 127.0.0.1:7381 127.0.0.1:7383 127.0.0.1:7385

其中--replicas參數用來指定集群中每個主節點有幾個從節點,這里設置的是1。命令執行后,會首先給出主從節點的分配計劃:

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7380
127.0.0.1:7382
127.0.0.1:7384
Adding replica 127.0.0.1:7383 to 127.0.0.1:7380
Adding replica 127.0.0.1:7385 to 127.0.0.1:7382
Adding replica 127.0.0.1:7381 to 127.0.0.1:7384
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: c25675d021c377c91f860986025e3779d89ede79 127.0.0.1:7380
  slots:0-5460 (5461 slots) master
M: 58980a81b49de31383802d7d21d6782881678922 127.0.0.1:7382
  slots:5461-10922 (5462 slots) master
M: 3f00a37d2c7a5ea40671c8f2934f66d059157a4a 127.0.0.1:7384
  slots:10923-16383 (5461 slots) master
S: 6f7dd93973a8332305831e6b7b5e2c54c15b3b51 127.0.0.1:7381
  replicates 3f00a37d2c7a5ea40671c8f2934f66d059157a4a
S: 03e01f82a935ed7f977af092e6a9cb71057df68a 127.0.0.1:7383
  replicates c25675d021c377c91f860986025e3779d89ede79
S: 2cf3883e974a709b7070d6c4d7c528d9fa813358 127.0.0.1:7385
  replicates 58980a81b49de31383802d7d21d6782881678922
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:7380)
M: c25675d021c377c91f860986025e3779d89ede79 127.0.0.1:7380
  slots:0-5460 (5461 slots) master
  1 additional replica(s)
M: 58980a81b49de31383802d7d21d6782881678922 127.0.0.1:7382
  slots:5461-10922 (5462 slots) master
  1 additional replica(s)
S: 2cf3883e974a709b7070d6c4d7c528d9fa813358 127.0.0.1:7385
  slots: (0 slots) slave
  replicates 58980a81b49de31383802d7d21d6782881678922
S: 03e01f82a935ed7f977af092e6a9cb71057df68a 127.0.0.1:7383
  slots: (0 slots) slave
  replicates c25675d021c377c91f860986025e3779d89ede79
S: 6f7dd93973a8332305831e6b7b5e2c54c15b3b51 127.0.0.1:7381
  slots: (0 slots) slave
  replicates 3f00a37d2c7a5ea40671c8f2934f66d059157a4a
M: 3f00a37d2c7a5ea40671c8f2934f66d059157a4a 127.0.0.1:7384
  slots:10923-16383 (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.

集群創建完成后,還可以使用redis-trib.rb check命令檢查集群是否創建成功,具體命令如下:

# redis-trib.rb check 127.0.0.1:7380
>>> Performing Cluster Check (using node 127.0.0.1:7380)
M: c25675d021c377c91f860986025e3779d89ede79 127.0.0.1:7380
  slots:0-5460 (5461 slots) master
  1 additional replica(s)
M: 58980a81b49de31383802d7d21d6782881678922 127.0.0.1:7382
  slots:5461-10922 (5462 slots) master
  1 additional replica(s)
S: 2cf3883e974a709b7070d6c4d7c528d9fa813358 127.0.0.1:7385
  slots: (0 slots) slave
  replicates 58980a81b49de31383802d7d21d6782881678922
S: 03e01f82a935ed7f977af092e6a9cb71057df68a 127.0.0.1:7383
  slots: (0 slots) slave
  replicates c25675d021c377c91f860986025e3779d89ede79
S: 6f7dd93973a8332305831e6b7b5e2c54c15b3b51 127.0.0.1:7381
  slots: (0 slots) slave
  replicates 3f00a37d2c7a5ea40671c8f2934f66d059157a4a
M: 3f00a37d2c7a5ea40671c8f2934f66d059157a4a 127.0.0.1:7384
  slots:10923-16383 (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.

可以看到,所有的槽都已分配到節點上,大功告成!

到此這篇關于詳解三分鐘快速搭建分布式高可用的Redis集群的文章就介紹到這了,更多相關Redis搭建分布式高可用集群內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 淺談Redis在微服務架構中的幾種應用場景
  • redis三種高可用方式部署的實現
  • Redis5之后版本的高可用集群搭建的實現
  • Redis為什么快如何實現高可用及持久化
  • Redis服務之高可用組件sentinel詳解
  • Redis Sentinel實現高可用配置的詳細步驟
  • 解析高可用Redis服務架構分析與搭建方案

標簽:江蘇 朝陽 吉安 大慶 臺州 果洛 楊凌 北京

巨人網絡通訊聲明:本文標題《詳解三分鐘快速搭建分布式高可用的Redis集群》,本文關鍵詞  詳解,三分鐘,快速,搭建,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解三分鐘快速搭建分布式高可用的Redis集群》相關的同類信息!
  • 本頁收集關于詳解三分鐘快速搭建分布式高可用的Redis集群的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美—级在线免费片| 狠狠色狠狠色合久久伊人| 亚洲男人都懂的| 精品一区二区三区免费播放| 91成人免费在线| 亚洲婷婷综合久久一本伊一区| 免费人成精品欧美精品| 国产一区久久久| 久久网站热最新地址| 麻豆精品蜜桃视频网站| 欧美videossexotv100| 美女视频免费一区| 日韩午夜中文字幕| 麻豆成人免费电影| 久久久国产午夜精品 | 欧美日免费三级在线| 亚洲综合色自拍一区| 欧美日韩久久久久久| 日本午夜精品视频在线观看| 欧美mv日韩mv国产网站app| 国产成人无遮挡在线视频| 亚洲欧美日韩一区二区| 制服丝袜在线91| 激情深爱一区二区| 亚洲视频每日更新| 欧美一区二区三级| 粉嫩绯色av一区二区在线观看| 亚洲日本电影在线| 欧美一区二区三区免费| 99re热视频精品| 日日骚欧美日韩| 国产精品午夜电影| 91精品一区二区三区在线观看| 紧缚奴在线一区二区三区| 亚洲日本成人在线观看| 久久久久免费观看| 欧美喷潮久久久xxxxx| 国产高清在线精品| 午夜电影久久久| 国产精品久久久一本精品| 欧美精品少妇一区二区三区 | 性欧美大战久久久久久久久| 久久你懂得1024| 欧美日韩中文字幕精品| 国产宾馆实践打屁股91| 日韩二区三区在线观看| 亚洲老妇xxxxxx| 国产日韩欧美精品电影三级在线 | 久久精品人人爽人人爽| 欧美日韩三级一区二区| 97久久精品人人做人人爽| 国产原创一区二区| 人人精品人人爱| 亚洲一二三区视频在线观看| 精品日韩在线观看| 欧美视频第二页| 成人福利视频网站| 国产一区二区三区蝌蚪| 日本不卡视频一二三区| 香港成人在线视频| 亚洲成人av电影在线| 亚洲另类一区二区| 日韩一区二区三区在线| 亚洲视频一区二区在线观看| 久久精品国产99| 91.com视频| 欧美日韩中文字幕一区| 欧美天堂一区二区三区| 日韩一区二区免费高清| 中文字幕av在线一区二区三区| 亚洲私人影院在线观看| 欧美在线视频全部完| 中文字幕中文字幕在线一区| 久久精品久久综合| 亚洲精品一区二区三区福利 | 欧美三级午夜理伦三级中视频| 激情偷乱视频一区二区三区| 免费一级欧美片在线观看| 亚洲国产经典视频| 久久精品人人做人人综合| 成人性视频免费网站| 免费高清在线一区| 在线综合+亚洲+欧美中文字幕| 色悠久久久久综合欧美99| 91色乱码一区二区三区| 国产精品久久久久婷婷二区次 | 亚洲国产精品久久不卡毛片| 国产精品一区二区果冻传媒| 韩国三级中文字幕hd久久精品| 91蝌蚪porny成人天涯| 久久亚洲综合色| 成人av资源站| 日韩电影免费一区| 成人高清免费观看| 亚洲欧洲性图库| 欧美视频中文字幕| 免费看日韩a级影片| 日韩精品一区二区三区在线播放 | 91黄色免费看| 国产欧美日韩激情| 91丨porny丨首页| 天堂蜜桃一区二区三区| 欧美精三区欧美精三区| 成人精品免费网站| 精品一区免费av| 亚洲欧美一区二区三区孕妇| 99久久伊人网影院| 久久超碰97人人做人人爱| 欧美日韩亚洲综合| 免费欧美在线视频| 亚洲人妖av一区二区| 国产一区二区三区免费观看| 中文字幕永久在线不卡| 538prom精品视频线放| 色综合视频在线观看| 精品黑人一区二区三区久久 | 亚洲国产精品高清| 免费成人在线影院| 亚洲gay无套男同| 欧美日韩另类一区| 色综合久久久久久久| 国产中文一区二区三区| 亚洲精品伦理在线| 国产精品视频一二三区 | 日韩美女久久久| 国产精品国模大尺度视频| 6080yy午夜一二三区久久| 91麻豆精品国产91久久久使用方法 | 国产精品国产三级国产有无不卡| 91精品国产综合久久精品图片| 国产精品一区二区三区99| 国产精品自拍一区| 岛国精品在线观看| 精品一区二区三区欧美| 国产91色综合久久免费分享| 麻豆精品蜜桃视频网站| 韩国精品主播一区二区在线观看 | 91福利精品视频| 不卡av在线免费观看| 欧美影视一区在线| 久久久蜜臀国产一区二区| 日韩欧美国产不卡| 欧美激情在线一区二区三区| 日韩欧美一级片| 日韩欧美久久久| 国产亚洲制服色| 亚洲一区二区在线免费观看视频| 亚洲激情六月丁香| 视频精品一区二区| 91精品婷婷国产综合久久竹菊| 日韩一级片网站| 国产精品视频九色porn| 亚洲一卡二卡三卡四卡无卡久久| 免费成人性网站| 免费亚洲电影在线| 日本乱人伦aⅴ精品| 91在线视频播放地址| 久久夜色精品国产噜噜av| 日韩视频永久免费| 欧美精品久久天天躁| 亚洲天堂久久久久久久| 欧美日韩专区在线| 中文字幕电影一区| 日韩高清电影一区| 成人av网站在线观看| 亚洲女同一区二区| 国产精品萝li| 色婷婷久久久综合中文字幕 | 欧美日韩国产123区| 中文字幕在线不卡一区二区三区| 青青草原综合久久大伊人精品| 豆国产96在线|亚洲| 久久影院午夜片一区| 午夜a成v人精品| 91香蕉国产在线观看软件| 26uuu另类欧美亚洲曰本| 天堂va蜜桃一区二区三区| 日本高清无吗v一区| 国模少妇一区二区三区| 国产视频一区在线播放| 国产成人av一区| 亚洲视频在线一区| 欧美亚洲图片小说| 麻豆成人在线观看| 国产调教视频一区| 99综合电影在线视频| 亚洲高清免费视频| 国产欧美久久久精品影院| 色综合网色综合| 香蕉加勒比综合久久| 久久青草欧美一区二区三区| 亚洲午夜久久久久久久久电影院| 欧美日韩夫妻久久| 亚洲va天堂va国产va久| 亚洲激情图片小说视频| 国产成人免费视频网站 | 色综合久久综合网97色综合 | 精品日韩在线观看| 亚洲最新在线观看| 在线电影院国产精品|