久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【Redis】《Redis 开发与运维》笔记-Chapter10-集群

發布時間:2023/12/10 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Redis】《Redis 开发与运维》笔记-Chapter10-集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
十、集群

1、概述

Redis Cluster是Redis 的分布式解決方案,在3.0版本正式推出,有效地解決了Redis分布式方面的需求。

Redis在3.0版本之前分布式方案一般有兩種:

  • 客戶端分區方案,優點是分區邏輯可控,缺點是需要自己處理數據路由、高可用、故障轉移等問題。
  • 代理方案,優點是簡化客戶端分布式邏輯和升級維護便利,缺點是加重架構部署復雜度和性能損耗。

現在官方為我們提供了專有的集群方案: Redis Cluster,它非常優雅地解決了Redis集群方面的問題。

2、數據分布理論

  • 分布式數據庫首先要解決把整個數據集按照分區規則映射到多個節點的問題,即把數據集劃分到多個節點上,每個節點負責整體數據的一個子集。
  • 常見的分區規則有哈希分區和順序分區兩種。
  • Redis Cluster采用哈希分區規則。
分區方式特點代表產品
哈希分區- 離散度好
- 數據分布業務無關
- 無法順序訪問
Redis Cluster
Cassandra
Dynamo
順序訪問- 離散度易傾斜
- 數據分布業務相關
- 可順序訪問
Bigtable
HBase
Hypertable

常見的哈希分區規則有幾種:

1)節點取余分區

  • 使用特定的數據,如Redis的鍵或用戶ID,再根據節點數量N使用公式:hash(key)%N計算出哈希值,用來決定數據映射到哪一個節點上。
  • 缺點:當節點數量變化時,如擴容或收縮節點,數據節點映射關系需要重新計算,會導致數據的重新遷移。
  • 優點:簡單性,常用于數據庫的分庫分表規則,一般采用預分區的方式,提前根據數據量規劃好分區數,比如劃分為512或1024張表,保證可支撐未來一段時間的數據量,再根據負載情況將表遷移到其他數據庫中。
  • 擴容時通常采用翻倍擴容,避免數據映射全部被打亂導致全量遷移的情況。

2)一致性哈希分區

  • 一致性哈希分區(Distributed Hash Table)實現思路是為系統中每個節點分配一個token,范圍一般在0~2^32,這些token構成一個哈希環。數據讀寫執行節點查找操作時,先根據key計算hash值,然后順時針找到第一個大于等于該哈希值的token節點。
  • 相比節點取余最大的好處在于加入和刪除節點只影響哈希環中相鄰的節點,對其他節點無影響。
  • 一致性哈希分區存在幾個問題:
  • 加減節點會造成哈希環中部分數據無法命中,需要手動處理或者忽略這部分數據,因此一致性哈希常用于緩存場景。
  • 當使用少量節點時,節點變化將大范圍影響哈希環中數據映射,因此這種方式不適合少量數據節點的分布式方案。
  • 普通的一致性哈希分區在增減節點時需要增加一倍或減去一半節點才能保證數據和負載的均衡。
  • 正因為一致性哈希分區的這些缺點,一些分布式系統采用虛擬槽對一致性哈希進行改進,比如Dynamo系統。

3)虛擬槽分區

  • 虛擬槽分區巧妙地使用了哈希空間,使用分散度良好的哈希函數把所有數據映射到一個固定范圍的整數集合中,整數定義為槽(slot)。這個范圍一般遠遠大于節點數,比如Redis Cluster槽范圍是0~16383。
  • 槽是集群內數據管理和遷移的基本單位。采用大范圍槽的主要目的是為了方便數據拆分和集群擴展。每個節點會負責一定數量的槽。
  • Redis Cluster就是采用虛擬槽分區。

3、Redis數據分區

數據分區是分布式存儲的核心。

Redis Cluser采用虛擬槽分區,所有的鍵根據哈希函數映射到0~16383整數槽內,計算公式:slot=CRC16(key)&16383。每一個節點負責維護一部分槽以及槽所映射的鍵值數據。

Redis虛擬槽分區的特點:

  • 解耦數據和節點之間的關系,簡化了節點擴容和收縮難度。
  • 節點自身維護槽的映射關系,不需要客戶端或者代理服務維護槽分區元數據。
  • 支持節點、槽、鍵之間的映射查詢,用于數據路由、在線伸縮等場景。

4、集群功能限制

Redis集群相對單機在功能上存在一些限制,限制如下:

  • key批量操作支持有限。如mset、mget,目前只支持具有相同slot值的key執行批量操作。對于映射為不同slot值的key由于執行mget、mget等操作可能存在于多個節點上因此不被支持。
  • key事務操作支持有限。同理只支持多key在同一節點上的事務操作,當多個key分布在不同的節點上時無法使用事務功能。
  • key作為數據分區的最小粒度,因此不能將一個大的鍵值對象如hash、list等映射到不同的節點。
  • 不支持多數據庫空間。單機下的Redis可以支持16個數據庫,集群模式下只能使用一個數據庫空間,即db0。
  • 復制結構只支持一層,從節點只能復制主節點,不支持嵌套樹狀復制結構。

5、搭建集群

搭建集群工作需要以下三個步驟:

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

6、搭建集群步驟一:準備節點

集群相關配置如下,其他配置和單機模式一致即可,配置文件命名規則redis-{port}.conf #節點端口 port 6379 # 開啟集群模式 cluster enabled yes # 節點超時時間,單位毫秒 cluster-node-timeout 15000 # 集群內部配置文件 cluster config file "nodes 6379.conf"#cat data/nodes-6379.conf cfb28ef1deee4e0fa78da86abe5d24566744411e 127.0.0.1:6379 myself,master - 0 0 0 co vars currentEpoch 0 lastVoteEpoch 0127.0.0.1:6380> cluster nodes // 每個節點目前只能識別出自己的節點信息(要通過節點握手才能建立聯系)。 8e41673d59c9568aa9d29fb174ce733345b3e8f1 127.0.0.1:6380 myself,master - 0 0 0 co
  • Redis集群一般由多個節點組成,節點數量至少為6個才能保證組成完整高可用的集群。
  • 每個節點需要開啟配置cluster-enabled yes,讓Redis運行在集群模式下。
  • 建議為集群內所有節點統一目錄,一般劃分三個目錄:conf、data、log,分別存放配置、數據和日志相關文件。把6個節點配置統一放在conf目錄下。
  • 第一次啟動時如果沒有集群配置文件,它會自動創建一份,文件名稱采用cluster-config-file參數項控制,建議采用node-{port}.conf格式定義,通過使用端口號區分不同節點,防止同一機器下多個 節點彼此覆蓋,造成集群信息異常。
  • 如果啟動時存在集群配置文件,節點會使用配置文件內容初始化集群信息。
  • 集群模式的Redis除了原有的配置文件之外又加了一份集群配置文件。當集群內節點信息發生變化,如添加節點、節點下線、故障轉移等。節點會自動保存集群狀態到配置文件中。
  • 需要注意的是,Redis自動維護集群配置文件,不要手動修改,防止節點重啟時產生集群信息錯亂。
  • 集群配置文件內容記錄了集群初始狀態,這里最重要的是節點ID,它是一個40位16進制字符串,用于唯一標識集群內一個節點,之后很多集群操作都要借助于節點ID來完成。需要注意是,節點ID不同于運行ID。節點ID在集群初始化時只創建一次,節點重啟時會加載集群配置文件進行重用,而Redis的運行ID每次重啟都會變化。

7、搭建集群步驟二:節點握手

  • 節點握手是指一批運行在集群模式下的節點通過Gossip協議彼此通信,達到感知對方的過程。
  • 節點握手是集群彼此通信的第一步,由客戶端發起命令:cluster meet {ip} {port}
  • cluster meet命令是一個異步命令,執行之后立刻返回。內部發起與目標節點進行握手通信。
  • cluster meet 127.0.0.1 6380讓節點6379和6380節點進行握手通信:
  • 節點6379本地創建6380節點信息對象,并發送meet消息。
  • 節點6380接受到meet消息后,保存6379節點信息并回復pong消息。
  • 之后節點6379和6380彼此定期通過ping/pong消息進行正常的節點通信。
  • 這里的meet、ping、pong消息是Gossip協議通信的載體,它的主要作用是節點彼此交換狀態數據信息。
  • 對節點6379和6380分別執行cluster nodes命令,可以看到它們彼此已經感知到對方的存在。
  • 我們只需要在集群內任意節點上執行cluster meet命令加入新節點,握手狀態會通過消息在集群內傳播,這樣其他節點會自動發現新節點并發起握手 流程。
  • 節點建立握手之后集群還不能正常工作,這時集群處于下線狀態,所有的數據讀寫都被禁止。
  • 通過cluster info命令可以獲取集群當前狀態。
  • 被分配的槽(cluster_slots_assigned)是0 ,由于目前所有的槽沒有分配到節點,因此集群無法完成槽到節點的映射。只有當16384個槽全部分配給節點后,集群才進入在線狀態。
127.0.0.1:6379> set hello redis (error) CLUSTERDOWN The cluster is down127.0.0.1:6379> cluster info cluster_state:fail cluster_slots_assigned:0 cluster_slots_ok:0 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:0

8、搭建集群步驟三:分配槽

// 利用bash特性批量設置槽(slots),命令如下: redis-cli -h 127.0.0.1 p 6379 cluster addslots {0 . . .5461} redis-cli -h 127.0.0.1 -p 6380 cluster addslots {5462 . . .10922} redis-cli -h 127.0.0.1 -p 6381 cluster addslots {10923 . . .16383}// 執行cluster info查看集群狀態 127.0.0.1 :6379> 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:5 cluster_my_epoch:0 cluster_stats_messages_sent:4874 cluster_stats_messages_received:4726
  • Redis集群把所有的數據映射到16384個槽中。每個key會映射為一個固定的槽,只有當節點分配了槽,才能響應和這些槽關聯的鍵命令。
  • 通過cluster addslots命令為節點分配槽。
  • 當前集群狀態是OK,集群進入在線狀態。
  • 所有的槽都已經分配給節點,執行cluster nodes命令可以看到節點和槽的分配關系。
  • 作為一個完整的集群,每個負責處理槽的節點應該具有從節點,保證當它出現故障時可以自動進行故障轉移。
  • 集群模式下,Reids節點角色分為主節點和從節點。首次啟動的節點和被分配槽的節點都是主節點,從節點負責復制主節點槽信息和相關的數據。
  • 使用cluster replicate {nodeId}命令讓一個節點成為從節點。其中命令執行必須在對應的從節點上執行,nodeId是要復制主節點的節點ID。
  • 通過cluster nodes命令查看集群狀態和復制關系。
  • Redis官方提供了redis-trib.rb工具方便我們快速搭建集群。

9、用redis-trib.rb搭建集群

redis-trib.rb是采用Ruby實現的Redis集群管理工具。內部通過Cluster相關命令幫我們簡化集群創建、檢查、槽遷移和均衡等常見運維操作,使用之前需要安裝Ruby依賴環境。

1)Ruby環境準備

1、安裝Ruby: -- 下載ruby wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz -- 安裝ruby tar xvf ruby-2.3.1.tar.gz ./configure -prefix=/usr/local/ruby make make install cd /usr/local/ruby sudo cp bin/ruby /usr/local/bin sudo cp bin/gem /usr/local/bin2、安裝rubygem redis依賴: wget http://rubygems.org/downloads/redis-3.3.0.gem gem install -l redis-3.3.0.gem gem list --check redis gem3、安裝redis-trib.rb: sudo cp /{redis_home}/src/redis-trib.rb /usr/local/bin4、執行redis-trib.rb命令確認環境是否正確: # redis-trib.rbUsage: 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> --to <arg> --slots <arg> --yes --timeout <arg> --pipeline <arg> . . .忽略 . . .
  • 從redis-trib.rb的提示信息可以看出,它提供了集群創建、檢查、修復、均衡等命令行工具。
  • 使用redis-trib.rb create命令可快速搭建集群。

2)準備節點

// 準備好節點配置并啟動: redis-server conf/redis-6481.conf redis-server conf/redis-6482.conf redis-server conf/redis-6483.conf redis-server conf/redis-6484.conf redis-server conf/redis-6485.conf redis-server conf/redis-6486.conf

3)創建集群

// 使用redis-trib.rb create命令完成節點握手和槽分配過程,命令如下: redis-trib.rb create --replicas 1 127.0.0.1:6481 127.0.0.1:6482 127.0.0.1:6483 127.0.0.1:6484 127.0.0.1:6485 127.0.0.1:6486
  • –replicas參數指定集群中每個主節點配備幾個從節點,這里設置為1。
  • 如果部署節點使用不同的IP地址,redis-trib.rb會盡可能保證主從節點不分配在同一機器下。
  • 節點列表順序用于確定主從角色,先主節點之后是從節點。
  • 需要注意給redis-trib.rb的節點地址必須是不包含任何槽/數據的節點,否則會拒絕創建集群。

4)集群完整性檢查

redis-trib.rb check 127.0.0.1:6481
  • 集群完整性指所有的槽都分配到存活的主節點上,只要16384個槽中有一個沒有分配給節點則表示集群不完整。
  • 可以使用redis-trib.rb check命令檢測創建的集群是否成功,check命令只需要給出集群中任意一個節點地址就可以完成整個集群的檢查工作。

10、節點通信流程

  • 在分布式存儲中需要提供維護節點元數據信息的機制,所謂元數據是指:節點負責哪些數據,是否出現故障等狀態信息。
  • 常見的元數據維護方式分為:集中式和P2P方式。Redis集群采用P2P的Gossip(流言)協議,Gossip協議工作原理就是節點彼此不斷通信交換信息,一段時間后所有的節點都會知道集群完整的信息。
  • 通信過程說明:
  • 集群中的每個節點都會單獨開辟一個TCP通道,用于節點之間彼此通信,通信端口號在基礎端口上加10000。
  • 每個節點在固定周期內通過特定規則選擇幾個節點發送ping消息。
  • 接收到ping消息的節點用pong消息作為響應。
  • 集群中每個節點通過一定規則挑選要通信的節點,每個節點可能知道全部節點,也可能僅知道部分節點,只要這些節點彼此可以正常通信,最終它們會達到一致的狀態。當節點出故障、新節點加入、主從角色變化、槽信息變更等事件發生時,通過不斷的ping/pong消息通信,經過一段時間后所有的節點都會知道整個集群全部節點的最新狀態,從而達到集群狀態同步的目的。

11、Gossip消息

  • Gossip協議的主要職責就是信息交換。信息交換的載體就是節點彼此發送的Gossip消息。
  • 常用的Gossip消息可分為: ping消息、pong消息、meet消息、fail消息等。
  • meet消息:用于通知新節點加入。消息發送者通知接收者加入到當前集群,meet消息通信正常完成后,接收節點會加入到集群中并進行周期性的ping、pong消息交換。
  • ping消息:集群內交換最頻繁的消息,集群內每個節點每秒向多個其他節點發送ping消息,用于檢測節點是否在線和交換彼此狀態信息。ping消息發送封裝了自身節點和部分其他節點的狀態數據。
  • pong消息:當接收到ping、meet消息時,作為響應消息回復給發送方確認消息正常通信。pong消息內部封裝了自身狀態數據。節點也可以向集群內廣播自身的pong消息來通知整個集群對自身狀態進行更新。
  • fail消息:當節點判定集群內另一個節點下線時,會向集群內廣播一個fail消息,其他節點接收到fail消息之后把對應節點更新為下線狀態。
  • 所有的消息格式劃分為:消息頭和消息體。消息頭包含發送節點自身狀態數據,接收節點根據消息頭就可以獲取到發送節點的相關數據。
  • 集群內所有的消息都采用相同的消息頭結構clusterMsg,它包含了發送節點關鍵信息,如節點id 、槽映射、節點標識(主從角色,是否下線)等。消息體在Redis內部采用clusterMsgData結構聲明。
  • 消息體clusterMsgData定義發送消息的數據,其中ping、meet、pong都采用cluster MsgDataGossip數組作為消息體數據,實際消息類型使用消息頭的type屬性區分。每個消息體包含該節點的多個clusterMsgDataGossip結構數據,用于信息交換。
  • 當接收到ping、meet消息時,接收節點會解析消息內容并根據自身的識別情況做出相應處理。

12、節點選擇

  • Redis集群內節點通信采用固定頻率(定時任務每秒執行10次)。因此節點每次選擇需要通信的節點列表變得非常重要。通信節點選擇過多雖然可以做到信息及時交換但成本過高。節點選擇過少會降低集群內所有節點彼此信息交換頻率,從而影響故障判定、新節點發現等需求的速度。因此Redis集群的Gossip協議需要兼顧信息交換實時性和成本開銷。
  • 消息交換的成本主要體現在單位時間選擇發送消息的節點數量和每個消息攜帶的數據量。

1)選擇發送消息的節點數量

  • 集群內每個節點維護定時任務默認每秒執行10次,每秒會隨機選取5個節點找出最久沒有通信的節點發送ping消息,用于保證Gossip信息交換的隨機性。
  • 每100毫秒都會掃描本地節點列表,如果發現節點最近一次接受pong消息的時間大于cluster_node_timeout/2 ,則立刻發送ping消息,防止該節點信息太長時間未更新。
  • 根據以上規則得出每個節點每秒需要發送ping消息的數量= 1+10*num(node.pong_received>cluster_node_timeout/2),因此cluster_node_timeout參數對消息發送的節點數量影響非常大。當我們的帶寬資源緊張時,可以適當調大這個參數,如從默認15秒改為30秒來降低帶寬占用率。過度調大cluster_node_timeout會影響消息交換的頻率從而影響故障轉移、槽信息更新、新節點發現的速度。因此需要根據業務容忍度和資源消耗進行平衡。
  • 同時整個集群消息總交換量也跟節點數成正比。

2)消息數據量

  • 每個ping消息的數據量體現在消息頭和消息體中,其中消息頭主要占用空間的字段是myslots[CLUSTER_SLOTS/8],占用2KB,這塊空間占用相對固定。消息體會攜帶一定數量的其他節點信息用于信息交換。
  • 消息體攜帶數據量跟集群的節點數息息相關,更大的集群每次消息通信的成本也就更高。

13、集群伸縮原理

  • Redis集群可以實現對節點的靈活上下線控制。其中原理可抽象為槽和對應數據在不同節點之間靈活移動。
  • 如果希望加入1個節點實現集群擴容時,需要通過相關命令把一部分槽和數據遷移給新節點,因此每個節點負責的槽和數據相比之前變少了,從而達到了集群擴容的目的。

14、擴容集群

1)準備新節點

  • 需要提前準備好新節點并運行在集群模式下,新節點建議跟集群內的節點配置保持一致,便于管理統一。
redis-server conf/redis-6385.conf redis-server conf/redis-6386.conf

2)加入集群

  • 新節點依然采用cluster meet命令加入到現有集群中。在集群內任意節點執行cluster meet命令讓6385和6386節點加入進來。
  • 集群內新舊節點經過一段時間的ping/pong消息通信之后,所有節點會發現新節點并將它們的狀態保存到本地。
  • 新節點剛開始都是主節點狀態,但是由于沒有負責的槽,所以不能接受任何讀寫操作。對于新節點的后續操作我們一般有兩種選擇:
  • 為它遷移槽和數據實現擴容。
  • 作為其他主節點的從節點負責故障轉移。
  • redis-trib.rb工具也實現了為現有集群添加新節點的命令,還實現了直接添加為從節點的支持,命令見下方。內部同樣采用cluster meet命令實現加入集群功能。
  • 正式環境建議使用redis-trib.rb add-node命令加入新節點,該命令內部會執行新節點狀態檢查,如果新節點已經加入其他集群或者包含數據,則放棄集群加入操作并打印相關信息。如果我們手動執行cluster meet命令加入已經存在于其他集群的節點,會造成被加入節點的集群合并到現有集群的情況,從而造成數據丟失和錯亂,后果非常嚴重,線上謹慎操作。
127.0.0.1:6379> cluster meet 127.0.0.1 6385 127.0.0.1:6379> cluster meet 127.0.0.1 6386redis-trib.rb add-node new_host:new_port existing_host:existing_port --slave --master-id <arg>redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379 redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379

3)遷移槽和數據

  • 加入集群后需要為新節點遷移槽和相關數據,槽在遷移過程中集群可以正常提供讀寫服務,遷移過程是集群擴容最核心的環節。
  • 槽遷移計劃:槽是Redis集群管理數據的基本單位,首先需要為新節點制定槽的遷移計劃,確定原有節點的哪些槽需要遷移到新節點。遷移計劃需要確保每個節點負責相似數量的槽,從而保證各節點的數據均勻。
  • 遷移數據:數據遷移過程是逐個槽進行的,每個槽數據遷移的流程說明如下:
  • 對目標節點發送cluster setslot {slot} importing {sourceNodeId}命令,讓目標節點準備導入槽的數據。
  • 對源節點發送cluster setslot {slot} migrating {targetNodeId}命令,讓源節點準備遷出槽的數據。
  • 源節點循環執行cluster getkeysinslot {slot} {count}命令,獲取count個屬于槽{slot}的鍵。
  • 在源節點上執行migrate {targetIp}{targetPort}""0{timeout}keys {keys…}命令,把獲取的鍵通過流水線(pipeline)機制批量遷移到目標節點,批量遷移版本的migrate命令在Redis3.0.6以上版本提供,之前的migrate命令只能單個鍵遷移。對于大量key的場景,批量鍵遷移將極大降低節點之間網絡IO次數。
  • 重復執行步驟3)和步驟4)直到槽下所有的鍵值數據遷移到目標節點。
  • 向集群內所有主節點發送cluster setslot {slot} node {targetNodeId}命令,通知槽分配給目標節點。為了保證槽節點映射變更及時傳播,需要遍歷發送給所有主節點更新被遷移的槽指向新節點。
  • 添加從節點:使用cluster replicate {masterNodeId}命令為主節點添加對應從節點,注意在集群模式下slaveof添加從節點操作不再支持。從節點內部除了對主節點發起全量復制之外,還需要更新本地節點的集群相關狀態。
根據以上遷移數據流程,手動使用命令把源節點6379負責的槽4096遷移到目標節點6385中,流程如下: 1、目標節點準備導入槽4096數據: 127.0.0.1:6385> cluster setslot 4096 importing cfb28ef1deee4e0fa78da86abe5d24566 OK確認槽4096導入狀態開啟: 127.0.0.1:6385> cluster nodes 1a205dd8b2819a00dd1e8b6be40a8e2abe77b756 127.0.0.1:6385 myself,master - 0 0 7 co [4096 < cfb28ef1deee4e0fa78da86abe5d24566744411e]2、源節點準備導出槽4096數據: 127.0.0.1:6379>cluster setslot 4096 migrating 1a205dd8b2819a00dd1e8b6be40a8e2abe OK確認槽4096導出狀態開啟: 127.0.0.1:6379> cluster nodes cfb28ef1deee4e0fa78da86abe5d24566744411e 127.0.0.1:6379 myself,master - 0 0 0 co 0-5461 [4096->-1a205dd8b2819a00dd1e8b6be40a8e2abe77b756]3、批量獲取槽4096對應的鍵,這里我們獲取到3個處于該槽的鍵: 127.0.0.1:6379> cluster getkeysinslot 4096 100 1) "key:test:5028" 2) "key:test:68253" 3) "key:test:79212"確認這三個鍵是否存在于源節點: 127.0.0.1:6379>mget key:test:5028 key:test:68253 key:test:79212 1) "value:5028" 2) "value:68253" 3) "value:79212"批量遷移這3個鍵,migrate命令保證了每個鍵遷移過程的原子性: 127.0.0.1:6379> migrate 127.0.0.1 6385 "" 0 5000 keys key:test:5028 key:test:682 key:test:79212繼續查詢這三個鍵,發現已經不在源節點中,Redis返回ASK轉向錯誤,ASK轉向負責引導客戶端找到數據所在的節點: 127.0.0.1:6379> mget key:test:5028 key:test:68253 key:test:79212 (error) ASK 4096 127.0 .0.1:6385通知所有主節點槽4096指派給目標節點6385: 127.0.0.1:6379> cluster setslot 4096 1a205dd8b2819a00dd1e8b6be40a8e2abe77b7 127.0.0.1:6380> cluster setslot 4096 1a205dd8b2819a00dd1e8b6be40a8e2abe77b7 127.0.0.1:6381> cluster setslot 4096 1a205dd8b2819a00dd1e8b6be40a8e2abe77b7 127.0.0.1:6385> cluster setslot 4096 1a205dd8b2819a00dd1e8b6be40a8e2abe77b7 確認源節點6379不再負責槽4096改為目標節點6385負責: 127.0.0.1:6379> cluster nodes cfb28ef1deee4e0fa78da86abe5d24566744411e 127.0.0.1:6379 myself,master - 0 0 0 co 0-4095 4097-5461 1a205dd8b2819a00dd1e8b6be40a8e2abe77b756 127.0.0.1:6385 master - 0 146971801107 connected 4096

實際操作槽遷移過程時肯定涉及大量槽并且每個槽對應非常多的鍵。因此redis-trib提供了槽重分片功能,命令如下:
redis-trib.rb reshard host:port --from <arg> --to <arg> --slots <arg> --yes --t <arg> --pipeline <arg>
參數說明:

  • host:port:必傳參數,集群內任意節點地址,用來獲取整個集群信息。
  • –from:制定源節點的id,如果有多個源節點,使用逗號分隔,如果是all源節點變為集群內所有主節點,在遷移過程中提示用戶輸入。
  • –to:需要遷移的目標節點的id,目標節點只能填寫一個,在遷移過程中提示用戶輸入。
  • –slots:需要遷移槽的總數量,在遷移過程中提示用戶輸入。
  • –yes:當打印出reshard執行計劃時,是否需要用戶輸入yes確認后再執行reshard。
  • –timeout:控制每次migrate操作的超時時間,默認為60000毫秒。
  • –pipeline:控制每次批量遷移鍵的數量,默認為10。

reshard命令簡化了數據遷移的工作量,其內部針對每個槽的數據遷移同樣使用之前的流程。

由于槽用于hash運算本身順序沒有意義,因此無須強制要求節點負責槽的順序性。遷移之后建議使用redis-trib.rb rebalance命令檢查節點之間槽的均衡性。

15、收縮集群

安全下線節點的流程說明:

  • 首先需要確定下線節點是否有負責的槽,如果是,需要把槽遷移到其他節點,保證節點下線后整個集群槽節點映射的完整性。
  • 當下線節點不再負責槽或者本身是從節點時,就可以通知集群內其他節點忘記下線節點,當所有的節點忘記該節點后可以正常關閉。

1)下線遷移槽

  • 下線節點需要把自己負責的槽遷移到其他節點,原理與之前節點擴容的遷移槽過程一致。
  • 收縮正好和擴容遷移方向相反。
  • 下線節點槽遷出完成后,剩下的步驟需要讓集群忘記該節點。

2)忘記節點

  • 由于集群內的節點不停地通過Gossip消息彼此交換節點狀態,因此需要通過一種健壯的機制讓集群內所有節點忘記下線的節點。也就是說讓其他節點不再與要下線節點進行Gossip消息交換。Redis提供了cluster forget{downNodeId}命令實現該功能。
  • 當節點接收到cluster forget{down NodeId}命令后,會把nodeId指定的節點加入到禁用列表中,在禁用列表內的節點不再發送Gossip消息。
  • 禁用列表有效期是60秒,超過60秒節點會再次參與消息交換。也就是說當第一次forget命令發出后,我們有60秒的時間讓集群內的所有節點忘記下線節點。
  • 線上操作不建議直接使用cluster forget命令下線節點,需要跟大量節點命令交互,實際操作起來過于繁瑣并且容易遺漏forget節點。建議使用redis-trib.rb del-node {host:port}{downNodeId}命令。
  • 當下線主節點具有從節點時需要把該從節點指向到其他主節點,因此對于主從節點都下線的情況,建議先下線從節點再下線主節點,防止不必要的全量復制。

16、請求路由——請求重定向

  • Redis集群對客戶端通信協議做了比較大的修改,為了追求性能最大化,并沒有采用代理的方式而是采用客戶端直連節點的方式。因此對于希望從單機切換到集群環境的應用需要修改客戶端代碼。
  • 在集群模式下,Redis接收任何鍵相關命令時首先計算鍵對應的槽,再根據槽找出所對應的節點,如果節點是自身,則處理鍵命令;否則回復MOVED重定向錯誤,通知客戶端請求正確的節點。這個過程稱為MOVED重定向。
  • 可以借助cluster keyslot{key}命令返回key所對應的槽。
  • 重定向信息包含了鍵所對應的槽以及負責該槽的節點地址,根據這些信息客戶端就可以向正確的節點發起請求。
  • 使用redis-cli命令時,可以加入-c參數支持自動重定向,簡化手動發起重定向操作。
  • redis-cli自動幫我們連接到正確的節點執行命令,這個過程是在redis-cli內部維護,實質上是client端接到MOVED信息之后再次發起請求,并不在Redis節點中完成請求轉發。
  • 節點對于不屬于它的鍵命令只回復重定向響應,并不負責轉發。
  • 正因為集群模式下把解析發起重定向的過程放到客戶端完成,所以集群客戶端協議相對于單機有了很大的變化。
  • 鍵命令執行步驟主要分兩步:計算槽,查找槽所對應的節點。
127.0.0.1:6379> cluster keyslot key:test:1 (integer) 5191 127.0.0.1:6379> cluster nodes cfb28ef1deee4e0fa78da86abe5d24566744411e 127.0.0.1:6379 myself,master 1366-4095 4097-5461 12288-13652127.0.0.1:6379> set key:test:2 value-2 (error) MOVED 9252 127.0.0.1:6380 127.0.0.1:6379> cluster keyslot key:test:2 (integer) 9252

1)計算槽

  • Redis首先需要計算鍵所對應的槽。根據鍵的有效部分使用CRC16函數計算出散列值,再取對16383的余數,使每個鍵都可以映射到0~16383槽范圍內。
  • 如果鍵內容包含{和}大括號字符,則計算槽的有效部分是括號內的內容;否則采用鍵的全內容計算槽。其中鍵內部使用大括號包含的內容又叫做hash_tag,它提供不同的鍵可以具備相同slot的功能,常用于Redis IO優化。例如在集群模式下使用mget等命令優化批量調用時,鍵列表必須具有相同的slot,否則會報錯。這時可以利用hash_tag讓不同的鍵具有相同的slot達到優化的目的。
  • Pipeline同樣可以受益于hash_tag,由于Pipeline只能向一個節點批量發送執行命令,而相同slot必然會對應到唯一的節點,降低了集群使用Pipeline的門檻。

2)槽節點查找

  • Redis計算得到鍵對應的槽后,需要查找槽所對應的節點。集群內通過消息交換每個節點都會知道所有節點的槽信息,內部保存在clusterState結構中。
  • 根據MOVED重定向機制,客戶端可以隨機連接集群內任一Redis獲取鍵所在節點,這種客戶端又叫Dummy(傀儡)客戶端,它優點是代碼實現簡單,對客戶端協議影響較小,只需要根據重定向信息再次發送請求即可。但是它的弊端很明顯,每次執行鍵命令前都要到Redis上進行重定向才能找到要執行命令的節點,額外增加了IO開銷,這不是Redis集群高效的使用方式。正因為如此通常集群客戶端都采用另一種實現:Smart(智能)客戶端。

17、請求路由——Smart客戶端

1)Smart客戶端原理

  • 大多數開發語言的Redis客戶端都采用Smart客戶端支持集群協議。
  • Smart客戶端通過在內部維護slot→node的映射關系,本地就可實現鍵到節點的查找,從而保證IO效率的最大化,而MOVED重定向負責協助Smart客戶端更新slot→node映射。
  • Smart客戶端操作集群的流程:略。

2)Smart客戶端——JedisCluster

  • Redis Cluster雖然提供了分布式的特性,但是有些命令或者操作,諸如keys、flushall、刪除指定模式的鍵,需要遍歷所有節點才可以完成。
  • Redis Cluster中,由于key分布到各個節點上,會造成無法實現mget、mset等功能。但是可以利用CRC16算法計算出key對應的slot,以及Smart客戶端保存了slot和節點對應關系的特性,將屬于同一個Redis節點的key進行歸檔,然后分別對每個節點對應的子key列表執行mget或者pipeline操作。
  • Lua和事務需要所操作的key,必須在一個節點上,不過Redis Cluster提供了hashtag,如果開發人員確實要使用Lua或者事務,可以將所要操作的key使用一個hashtag。

18、請求路由——ASK重定向

1)客戶端ASK重定向流程

  • Redis集群支持在線遷移槽(slot)和數據來完成水平伸縮,當slot對應的數據從源節點到目標節點遷移過程中,客戶端需要做到智能識別,保證鍵命令可正常執行。
  • 當一個slot數據從源節點遷移到目標節點時,期間可能出現一部分數據在源節點,而另一部分在目標節點的情況時,客戶端鍵命令執行流程將發生變化:
  • 客戶端根據本地slots緩存發送命令到源節點,如果存在鍵對象則直接執行并返回結果給客戶端。
  • 如果鍵對象不存在,則可能存在于目標節點,這時源節點會回復ASK重定向異常。格式如下:(error)ASK{slot}{targetIP} :{targetPort}。
  • 客戶端從ASK重定向異常提取出目標節點信息,發送asking命令到目標節點打開客戶端連接標識,再執行鍵命令。如果存在則執行,不存在則返回不存在信息。
  • ASK與MOVED雖然都是對客戶端的重定向控制,但是有著本質區別。ASK重定向說明集群正在進行slot數據遷移,客戶端無法知道什么時候遷移完成,因此只能是臨時性的重定向,客戶端不會更新slots緩存。但是MOVED重定向說明鍵對應的槽已經明確指定到新的節點,因此需要更新slots緩存。

2)節點內部處理

  • 為了支持ASK重定向,源節點和目標節點在內部的clusterState結構中維護當前正在遷移的槽信息,用于識別槽遷移情況。
  • 節點每次接收到鍵命令時,都會根據clusterState內的遷移屬性進行命令處理,如下所示:
  • 如果鍵所在的槽由當前節點負責,但鍵不存在則查找migrating_slots_to數組查看槽是否正在遷出,如果是返回ASK重定向。
  • 如果客戶端發送asking命令打開了CLIENT_ASKING標識,則該客戶端下次發送鍵命令時查找importing_slots_from數組獲取clusterNode ,如果指向自身則執行命令。
  • 需要注意的是,asking命令是一次性命令,每次執行完后客戶端標識都會修改回原狀態,因此每次客戶端接收到ASK重定向后都需要發送asking命令。
  • 批量操作。ASK重定向對單鍵命令支持得很完善,但是,在開發中我們經常使用批量操作,如mget或pipeline。當槽處于遷移狀態時,批量操作會受到影響。
  • 當在集群環境下使用mget、mset等批量操作時,slot遷移數據期間由于鍵列表無法保證在同一節點,會導致大量錯誤。
  • 使用smart客戶端批量操作集群時,需要評估mget/mset、Pipeline等方式在slot遷移場景下的容錯性,防止集群遷移造成大量錯誤和數據丟失的情況。
  • 集群環境下對于使用批量操作的場景,建議優先使用Pipeline方式,在客戶端實現對ASK重定向的正確處理,這樣既可以受益于批量操作的IO優化,又可以兼容slot遷移場景。

19、故障轉移之故障發現

  • Redis集群內節點通過ping/pong消息實現節點通信,消息不但可以傳播節點槽信息,還可以傳播其他狀態如:主從狀態、節點故障等。因此故障發現也是通過消息傳播機制實現的,主要環節包括:主觀下線(pfail)和客觀下線(fail)。
  • 主觀下線:指某個節點認為另一個節點不可用,即下線狀態,這個狀態并不是最終的故障判定,只能代表一個節點的意見,可能存在誤判情況。
  • 客觀下線:指標記一個節點真正的下線,集群內多個節點都認為該節點不可用,從而達成共識的結果。如果是持有槽的主節點故障,需要為該節點進行故障轉移。
  • 主觀下線:集群中每個節點都會定期向其他節點發送ping消息,接收節點回復pong消息作為響應。如果在cluster-node-timeout時間內通信一直失敗,則發送節點會認為接收節點存在故障,把接收節點標記為主觀下線(pfail)狀態。流程說明如下:
  • 節點a發送ping消息給節點b,如果通信正常將接收到pong消息,節點a更新最近一次與節點b的通信時間。
  • 如果節點a與節點b通信出現問題則斷開連接,下次會進行重連。如果一直通信失敗,則節點a記錄的與節點b最后通信時間將無法更新。
  • 節點a內的定時任務檢測到與節點b最后通信時間超高cluster-node-timeout時,更新本地對節點b的狀態為主觀下線(pfail)。
  • 主觀下線簡單來講就是,當cluster-note-timeout時間內某節點無法與另一個節點順利完成ping消息通信時,則將該節點標記為主觀下線狀態。每個節點內的cluster State結構都需要保存其他節點信息,用于從自身視角判斷其他節點的狀態。結構關鍵屬性中最重要的屬性是flags,用于標示該節點對應狀態。
  • 當某個節點判斷另一個節點主觀下線后,相應的節點狀態會跟隨消息在集群內傳播。ping/pong消息的消息體會攜帶集群1/10的其他節點狀態數據,當接受節點發現消息體中含有主觀下線的節點狀態時,會在本地找到故障節點的ClusterNode結構,保存到下線報告鏈表中。通過Gossip消息傳播,集群內節點不斷收集到故障節點的下線報告。當半數以上持有槽的主節點都標記某個節點是主觀下線時,觸發客觀下線流程。流程說明如下:
  • 當消息體內含有其他節點的pfail狀態會判斷發送節點的狀態,如果發送節點是主節點則對報告的pfail狀態處理,從節點則忽略。
  • 找到pfail對應的節點結構,更新clusterNode內部下線報告鏈表。
  • 根據更新后的下線報告鏈表告嘗試進行客觀下線。
  • 為什么必須是負責槽的主節點參與故障發現決策?因為集群模式下只有處理槽的主節點才負責讀寫請求和集群槽等關鍵信息維護,而從節點只進行主節點數據和狀態信息的復制。
  • 為什么半數以上處理槽的主節點?必須半數以上是為了應對網絡分區等原因造成的集群分割情況,被分割的小集群因為無法完成從主觀下線到客觀下線這一關鍵過程,從而防止小集群完成故障轉移之后繼續對外提供服務。
  • 每個節點ClusterNode結構中都會存在一個下線鏈表結構,保存了其他主節點針對當前節點的下線報告。下線報告中保存了報告故障的節點結構和最近收到下線報告的時間,當接收到fail狀態時,會維護對應節點的下線上報鏈表。每個下線報告都存在有效期,每次在嘗試觸發客觀下線時,都會檢測下線報告是否過期,對于過期的下線報告將被刪除。如果在cluster-node-time2的時間內該下線報告沒有得到更新則過期并刪除。下線報告的有效期限是server.cluster_node_timeout2 ,主要是針對故障誤報的情況。
  • 如果在cluster-node-time*2時間內無法收集到一半以上槽節點的下線報告,那么之前的下線報告將會過期,也就是說主觀下線上報的速度追趕不上下線報告過期的速度,那么故障節點將永遠無法被標記為客觀下線從而導致故障轉移失敗。因此不建議將cluster-node-time設置得過小。
  • 集群中的節點每次接收到其他節點的pfail狀態,都會嘗試觸發客觀下線,流程說明如下:
  • 首先統計有效的下線報告數量,如果小于集群內持有槽的主節點總數的一半則退出。
  • 當下線報告大于槽主節點數量一半時,標記對應故障節點為客觀下線狀態。
  • 向集群廣播一條fail消息,通知所有的節點將故障節點標記為客觀下線,fail消息的消息體只包含故障節點的ID。
  • 廣播fail消息是客觀下線的最后一步,它承擔著非常重要的職責:
  • 通知集群內所有的節點標記故障節點為客觀下線狀態并立刻生效。
  • 通知故障節點的從節點觸發故障轉移流程。
  • 網絡分區會導致分割后的小集群無法收到大集群的fail消息,因此如果故障節點所有的從節點都在小集群內將導致無法完成后續故障轉移,因此部署主從結構時需要根據自身機房/機架拓撲結構,降低主從被分區的可能性。

20、故障轉移之故障恢復

  • 故障節點變為客觀下線后,如果下線節點是持有槽的主節點則需要在它的從節點中選出一個替換它,從而保證集群的高可用。下線主節點的所有從 節點承擔故障恢復的義務,當從節點通過內部定時任務發現自身復制的主節點進入客觀下線時,將會觸發故障恢復流程。流程說明如下:
  • 資格檢查:每個從節點都要檢查最后與主節點斷線時間,判斷是否有資格替換故障的主節點。如果從節點與主節點斷線時間超過cluster-node-time*cluster-slave-validity-factor,則當前從節點不具備故障轉移資格。參數cluster-slave-validity-factor用于從節點的有效因子,默認為10。
  • 準備選舉時間:當從節點符合故障轉移資格后,更新觸發故障選舉的時間,只有到達該時間后才能執行后續流程。之所以采用延遲觸發機制,主要是通過對多個從節點使用不同的延遲選舉時間來支持優先級問題。復制偏移量越大說明從節點延遲越低,那么它應該具有更高的優先級來替換故障主節點。所有的從節點中復制偏移量最大的將提前觸發故障選舉流程。
  • 發起選舉:當從節點定時任務檢測到達故障選舉時間(failover_auth_time)到達后,發起選舉流程如下:
  • 更新配置紀元:配置紀元是一個只增不減的整數,每個主節點自身維護一個配置紀元(clusterNode.configEpoch)標示當前主節點的版本,所有主節點的配置紀元都不相等,從節點會復制主節點的配置紀元。整個集群又維護一個全局的配置紀元(clusterState.current Epoch),用于記錄集群內所有主節點配置紀元的最大版本。
  • 廣播選舉消息:在集群內廣播選舉消息(FAILOVER_AUTH_REQUEST),并記錄已發送過消息的狀態,保證該從節點在一個配置紀元內只能發起一次選舉。消息內容如同ping消息只是將type類型變為FAILOVER_AUTH_REQUEST。
  • 選舉投票:只有持有槽的主節點才會處理故障選舉消息(FAILOVER_AUTH_REQUEST),因為每個持有槽的節點在一個配置紀元內都有唯一的一張選票,當接到第一個請求投票的從節點消息時回復FAILOVER_AUTH_ACK消息作為投票,之后相同配置紀元內其他從節點的選舉消息將忽略。
  • 替換主節點:當從節點收集到足夠的選票之后,觸發替換主節點操作:
  • 當前從節點取消復制變為主節點。
  • 執行clusterDelSlot操作撤銷故障主節點負責的槽,并執行clusterAddSlot把這些槽委派給自己。
  • 向集群廣播自己的pong消息,通知集群內所有的節點當前從節點變為主節點并接管了故障主節點的槽信息。
  • 執行cluster info命令可以查看配置紀元信息。
  • 配置紀元會跟隨ping/pong消息在集群內傳播,當發送方與接收方都是主節點且配置紀元相等時代表出現了沖突,nodeId更大的一方會遞增全局配置紀元并賦值給當前節點來區分沖突。
  • 配置紀元的主要作用:
  • 標示集群內每個主節點的不同版本和當前集群最大的版本。
  • 每次集群發生重要事件時,這里的重要事件指出現新的主節點(新加入的或者由從節點轉換而來),從節點競爭選舉。都會遞增集群全局的配置紀元并賦值給相關主節點,用于記錄這一關鍵事件。
  • 主節點具有更大的配置紀元代表了更新的集群狀態,因此當節點間進行ping/pong消息交換時,如出現slots等關鍵信息不一致時,以配置紀元更大的一方為準,防止過時的消息狀態污染集群。
  • 配置紀元的應用場景有:
  • 新節點加入。
  • 槽節點映射沖突檢測。
  • 從節點投票選舉沖突檢測。
  • 之前在通過cluster setslot命令修改槽節點映射時,需要確保執行請求的主節點本地配置紀元(configEpoch)是最大值,否則修改后的槽信息在消息傳播中不會被擁有更高的配置紀元的節點采納。由于Gossip通信機制無法準確知道當前最大的配置紀元在哪個節點,因此在槽遷移任務最后的cluster setslot {slot} node {nodeId}命令需要在全部主節點中執行一遍。
  • 從節點每次發起投票時都會自增集群的全局配置紀元,并單獨保存在clusterState.failover_auth_epoch變量中用于標識本次從節點發起選舉的版本。
  • 投票過程其實是一個領導者選舉的過程,如集群內有N個持有槽的主節點代表有N張選票。由于在每個配置紀元內持有槽的主節點只能投票給一個從節點,因此只能有一個從節點獲得N/2+ 1的選票,保證能夠找出唯一的從節點。
  • Redis集群沒有直接使用從節點進行領導者選舉,主要因為從節點數必須大于等于3個才能保證湊夠N/2+1個節點,將導致從節點資源浪費。使用集群內所有持有槽的主節點進行領導者選舉,即使只有一個從節點也可以完成選舉過程。當從節點收集到N/2+ 1個持有槽的主節點投票時,從節點可以執行替換主節點操作。
  • 故障主節點也算在投票數內,假設集群內節點規模是3主3從,其中有2個主節點部署在一臺機器上,當這臺機器宕機時,由于從節點無法收集到3/2+1個主節點選票將導致故障轉移失敗。這個問題也適用于故障發現環節。因此部署集群時所有主節點最少需要部署在3臺物理機上才能避免單點問題。
  • 投票作廢:每個配置紀元代表了一次選舉周期,如果在開始投票之后的cluster-node-timeout*2時間內從節點沒有獲取足夠數量的投票,則本次選舉作廢。從節點對配置紀元自增并發起下一輪投票,直到選舉成功為止。

21、故障轉移之故障轉移時間

  • 估算出故障轉移時間:
  • 主觀下線(pfail)識別時間=cluster-node-timeout。
  • 主觀下線狀態消息傳播時間<=cluster-node-timeout/2。消息通信機制對超過cluster-node-timeout/2未通信節點會發起ping消息,消息體在選擇包含哪些節點時會優先選取下線狀態節點,所以通常這段時間內能夠收集到半數以上主節點的pfail報告從而完成故障發現。
  • 從節點轉移時間<=1000毫秒。由于存在延遲發起選舉機制,偏移量最大的從節點會最多延遲1秒發起選舉。通常第一次選舉就會成功,所以從節點執行轉移時間在1秒以內。
    根據以上分析可以預估出故障轉移時間,如下:
    failover-time (毫秒) ≤ cluster-node-timeout + cluster-node-timeout/2 + 1000
    因此,故障轉移時間跟cluster-node-timeout參數息息相關,默認15秒。配置時可以根據業務容忍度做出適當調整,但不是越小越好。

22、集群運維——集群完整性

  • 為了保證集群完整性,默認情況下當集群16384個槽任何一個沒有指派到節點時整個集群不可用。執行任何鍵命令返回(error)CLUSTERDOWN Hash slot not served錯誤。
  • 當持有槽的主節點下線時,從故障發現到自動完成轉移期間整個集群是不可用狀態,對于大多數業務無法容忍這種情況, 因此建議將參數cluster-require-full-coverage配置為no,當主節點故障時只影響它負責槽的相關命令執行,不會影響其他主節點的可用性。

23、集群運維——帶寬消耗

  • 集群內Gossip消息通信本身會消耗帶寬,官方建議集群最大規模在1000以內,也是出于對消息通信成本的考慮,因此單集群不適合部署超大規模的節點。
  • 節點間消息通信對帶寬的消耗體現在以下幾個方面:
  • 消息發送頻率:跟cluster-node-timeout密切相關,當節點發現與其他節點最后通信時間超過cluster-node-timeout/2時會直接發送ping消息。
  • 消息數據量:每個消息主要的數據占用包含:slots槽數組(2KB空間)和整個集群1/10的狀態數據(10個節點狀態數據約1KB)。
  • 節點部署的機器規模:機器帶寬的上線是固定的,因此相同規模的集群分布的機器越多每臺機器劃分的節點越均勻,則集群內整體的可用帶寬越高。
  • 集群帶寬消耗主要分為:讀寫命令消耗+Gossip消息消耗。因此搭建Redis集群時需要根據業務數據規模和消息通信成本做出合理規劃:
  • 在滿足業務需要的情況下盡量避免大集群。同一個系統可以針對不同業務場景拆分使用多套集群。這樣每個集群既滿足伸縮性和故障轉移要求,還可以規避大規模集群的弊端。
  • 適度提高cluster-node-timeout降低消息發送頻率,同時cluster-node-timeout還影響故障轉移的速度,因此需要根據自身業務場景兼顧二者的平衡。
  • 如果條件允許集群盡量均勻部署在更多機器上。避免集中部署,如集群有60個節點,集中部署在3臺機器上每臺部署20個節點,這時機器帶寬消耗將非常嚴重。

24、集群運維——Pub/Sub廣播問題

  • Redis在2.0版本提供了Pub/Sub(發布/訂閱)功能,用于針對頻道實現消息的發布和訂閱。但是在集群模式下內部實現對所有的publish命令都會向所有的節點進行廣播,造成每條publish數據都會在集群內所有節點傳播一次,加重帶寬負擔。
  • 當頻繁應用 Pub/Sub功能時應該避免在大量節點的集群內使用,否則會嚴重消耗集群內網絡帶寬。針對這種情況建議使用sentinel結構專門用于Pub/Sub功能,從而規避這一問題。

25、集群運維——集群傾斜

  • 集群傾斜指不同節點之間數據量和請求量出現明顯差異。

1)數據傾斜

  • 數據傾斜主要分為以下幾種:
  • 節點和槽分配嚴重不均。
    • 針對每個節點分配的槽不均的情況,可以使用redis-trib.rb info {host:ip}進行定位,會列舉出每個節點負責的槽和鍵總量以及每個槽平均鍵數量。
    • 當節點對應槽數量不均勻時,可以使用redis-trib.rb rebalance命令進行平衡。
  • 不同槽對應鍵數量差異過大。
    • 鍵通過CRC16哈希函數映射到槽上,正常情況下槽內鍵數量會相對均勻。但當大量使用hash_tag時,會產生不同 的鍵映射到同一個槽的情況。特別是選擇作為hash_tag的數據離散度較差時,將加速槽內鍵數量傾斜情況。
    • 通過命令:cluster countkeysinslot{slot}可以獲取槽對應的鍵數量,識別出哪些槽映射了過多的鍵。再通過命令cluster getkeysinslot{slot}{count}循環迭代出槽下所有的鍵。從而發現過度使用hash_tag的鍵。
  • 集合對象包含大量元素。
    • 對于大集合對象的識別可以使用redis-cli-- bigkeys命令識別。找出大集合之后可以根據業務場景進行拆分。
    • 同時集群槽數據遷移是對鍵執行migrate操作完成,過大的鍵集合如幾百兆,容易造成migrate命令超時導致數據遷移失敗。
  • 內存相關配置不一致。
    • 內存相關配置指hash-max-ziplist-value、set-max-intset-entries等壓縮數據結構配置。當集群大量使用hash、set等數據結構時,如果內存壓縮數據結構配置不一致,極端情況下會相差數倍的內存,從而造成節點內存量傾斜。

2)請求傾斜

  • 集群內特定節點請求量/流量過大將導致節點之間負載不均,影響集群均衡和運維成本。常出現在熱點鍵場景,當鍵命令消耗較低時如小對象的get、set、incr等,即使請求量差異較大一般也不會產生負載嚴重不均。
  • 但是當熱點鍵對應高算法復雜度的命令或者是大對象操作如hgetall、smembers等,會導致對應節點負載過高的情況。避免方式如下:
  • 合理設計鍵,熱點大集合對象做拆分或使用hmget替代hgetall避免整體讀取。
  • 不要使用熱鍵作為hash_tag,避免映射到同一槽。
  • 對于一致性要求不高的場景,客戶端可使用本地緩存減少熱鍵調用。

26、集群運維——集群讀寫分離

1)只讀連接

  • 集群模式下從節點不接受任何讀寫請求,發送過來的鍵命令會重定向到負責槽的主節點上(其中包括它的主節點)。
  • 當需要使用從節點分擔主節點讀壓力時,可以使用readonly命令打開客戶端連接只讀狀態。之前的復制配置slave-read-only在集群模式下無效。當開啟只讀狀態時,從節點接收讀命令處理流程變為:如果對應的槽屬于自己正在復制的主節點則直接執行讀命令,否則返回重定向信息。
  • readonly命令是連接級別生效,因此每次新建連接時都需要執行readonly開啟只讀狀態。執行readwrite命令可以關閉連接只讀狀態。

2)讀寫分離

  • 針對從節點故障問題,客戶端需要維護可用節點列表,集群提供了cluster slaves {nodeId}命令,返回nodeId對應主節點下所有從節點信息,數據格式同cluster nodes。解析從節點列表信息,排除fail狀態節點,這樣客戶端對從節點的故障判定可以委托給集群處理,簡化維護可用從節點列表難度。
  • 集群模式下讀寫分離涉及對客戶端修改如下:
  • 維護每個主節點可用從節點列表。
  • 針對讀命令維護請求節點路由。
  • 從節點新建連接開啟readonly狀態。
  • 集群模式下讀寫分離成本比較高,可以直接擴展主節點數量提高集群性能,一般不建議集群模式下做讀寫分離。
  • 集群讀寫分離有時用于特殊業務場景如:
  • 利用復制的最終一致性使用多個從節點做跨機房部署降低讀命令網絡延遲。
  • 主節點故障轉移時間過長,業務端把讀請求路由給從節點保證讀操作可用。
  • 以上場景也可以在不同機房獨立部署Redis集群解決,通過客戶端多寫來維護,讀命令直接請求到最近機房的Redis集群,或者當一個集群節點故障時客戶端轉向另一個集群。

27、集群運維——手動故障轉移

  • Redis集群提供了手動故障轉移功能:指定從節點發起轉移流程,主從節點角色進行切換,從節點變為新的主節點對外提供服務,舊的主節點變為它的從節點。
  • 在從節點上執行cluster failover命令發起轉移流程,默認情況下轉移期間客戶端請求會有短暫的阻塞,但不會丟失數據,流程如下:
  • 從節點通知主節點停止處理所有客戶端請求。
  • 主節點發送對應從節點延遲復制的數據。
  • 從節點接收處理復制延遲的數據,直到主從復制偏移量一致為止,保證復制數據不丟失。
  • 從節點立刻發起投票選舉(這里不需要延遲觸發選舉)。選舉成功后斷開復制變為新的主節點,之后向集群廣播主節點pong消息。
  • 舊主節點接受到消息后更新自身配置變為從節點,解除所有客戶端請求阻塞,這些請求會被重定向到新主節點上執行。
  • 舊主節點變為從節點后,向新的主節點發起全量復制流程。
  • 主從節點轉移后,新的從節點由于之前沒有緩存主節點信息無法使用部分復制功能,所以會發起全量復制,當節點包含大量數據時會嚴重消耗CPU和網絡資源,線上不要頻繁操作。Redis4.0的Psync2將有效改善這一問題。
  • 手動故障轉移的應用場景主要如下:
  • 主節點遷移:運維Redis集群過程中經常遇到調整節點部署的問題,如節點所在的老機器替換到新機器等。由于從節點默認不響應請求可以安全下線關閉,但直接下線主節點會導致故障自動轉移期間主節點無法對外提供服務,影響線上業務的穩定性。這時可以使用手動故障轉移,把要下線的主節點安全的替換為從節點后,再做下線操作操作。
  • 強制故障轉移。當自動故障轉移失敗時,只要故障的主節點有存活的從節點就可以通過手動轉移故障強制讓從節點替換故障的主節點,保證集群的可用性。
  • 自動故障轉移失敗的場景有:
  • 主節點和它的所有從節點同時故障。這個問題需要通過調整節點機器部署拓撲做規避,保證主從節點不在同一機器/機架上。除非機房內大面積故障,否則兩臺機器/機架同時故障概率很低。
  • 所有從節點與主節點復制斷線時間超過cluster-slave-validity-factor*cluster-node-tineout+repl-ping-slave-period,導致從節點被判定為沒有故障轉移資格,手動故障轉移從節點不做中斷超時檢查。
  • 由于網絡不穩定等問題,故障發現或故障選舉時間無法在cluster-node-timeout*2內完成,流程會不斷重試,最終從節點復制中斷時間超時,失去故障轉移資格無法完成轉移。
  • 集群內超過一半以上的主節點同時故障。
  • 根據以上情況,cluster failover命令提供了兩個參數force/takeover提供支持:、
  • cluster failover force——用于當主節點宕機且無法自動完成故障轉移情況。從節點接到cluster failover force請求時,從節點直接發起選舉,不再跟主節點確認復制偏移量(從節點復制延遲的數據會丟失),當從節點選舉成功后替換為新的主節點并廣播集群配置。
  • cluster failover takeover——用于集群內超過一半以上主節點故障的場景,因為從節點無法收到半數以上主節點投票,所以無法完成選舉過程。可以執行cluster failover takeover強制轉移,接到命令的從節點不再進行選舉流程而是直接更新本地配置紀元并替換主節點。takeover故障轉移由于沒有通過領導者選舉發起故障轉移,會導致配置紀元存在沖突的可能。當沖突發生時,集群會以nodeId字典序更大的一方配置為準。因此要小心集群分區后,手動執行takeover導致的集群沖突問題。
  • 在集群可以自動完成故障轉移的情況下,不要使用cluster failover takeover強制干擾集群選舉機制,該操作主要用于半數以上主節點故障時采取的強制措施,請慎用。
  • 手動故障轉移時,在滿足當前需求的情況下建議優先級:cluster failver>cluster failover force>cluster failover takeover。

28、集群運維——數據遷移

  • 應用Redis集群時,常需要把單機Redis數據遷移到集群環境。redis-trib.rb工具提供了導入功能,用于數據從單機向集群環境遷移的場景。
    redis-trib .rb import host :port --from <arg> --copy --replace
  • redis-trib.rb import命令內部采用批量scan和migrate 的方式遷移數據。這種遷移方式存在以下缺點:
  • 遷移只能從單機節點向集群環境導入數據。
  • 不支持在線遷移數據,遷移數據時應用方必須停寫,無法平滑遷移數據。
  • 遷移過程中途如果出現超時等錯誤,不支持斷點續傳只能重新全量導入。
  • 使用單線程進行數據遷移,大數據量遷移速度過慢。
  • 唯品會開發的redis-migrate-tool(https://github.com/vipshop/redis-migrate-tool),該工具可滿足大多數Redis遷移需求,特點如下:
  • 支持單機、Twemproxy、Redis Cluster 、RDB/AOF等多種類型的數據遷移。
  • 工具模擬成從節點基于復制流遷移數據,從而支持在線遷移數據,業務方不需要停寫。
  • 采用多線程加速數據遷移過程且提供數據校驗和查看遷移狀態等功能。

總結

以上是生活随笔為你收集整理的【Redis】《Redis 开发与运维》笔记-Chapter10-集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久久久免费看成人影片 | 精品久久久无码人妻字幂 | 成人精品一区二区三区中文字幕 | 1000部啪啪未满十八勿入下载 | 免费无码肉片在线观看 | 国产精品鲁鲁鲁 | 丰满肥臀大屁股熟妇激情视频 | 精品国产国产综合精品 | 4hu四虎永久在线观看 | 亚洲中文字幕av在天堂 | 久久精品女人天堂av免费观看 | 成人欧美一区二区三区黑人免费 | 国产97人人超碰caoprom | 好屌草这里只有精品 | 免费观看激色视频网站 | 狠狠亚洲超碰狼人久久 | 曰韩少妇内射免费播放 | 草草网站影院白丝内射 | 97无码免费人妻超级碰碰夜夜 | 网友自拍区视频精品 | 精品无码成人片一区二区98 | 国产艳妇av在线观看果冻传媒 | 麻豆国产人妻欲求不满 | 日韩精品久久久肉伦网站 | 国产明星裸体无码xxxx视频 | 俺去俺来也在线www色官网 | 国产成人综合在线女婷五月99播放 | 久久 国产 尿 小便 嘘嘘 | 成年美女黄网站色大免费视频 | 一二三四在线观看免费视频 | 一本久道久久综合婷婷五月 | 亚洲人成人无码网www国产 | 亚洲区小说区激情区图片区 | 国产精品第一国产精品 | 亚洲精品一区二区三区大桥未久 | 最新国产乱人伦偷精品免费网站 | 中文字幕无码av激情不卡 | 夜夜影院未满十八勿进 | 欧美精品在线观看 | 国精产品一区二区三区 | 亚洲人成网站在线播放942 | 国产麻豆精品一区二区三区v视界 | 久久熟妇人妻午夜寂寞影院 | 少妇激情av一区二区 | 亚洲中文字幕在线观看 | 兔费看少妇性l交大片免费 | 亚洲国产精品无码久久久久高潮 | 国产精品理论片在线观看 | 国产色精品久久人妻 | 色婷婷av一区二区三区之红樱桃 | 亚洲va中文字幕无码久久不卡 | 永久免费观看美女裸体的网站 | 女人色极品影院 | 窝窝午夜理论片影院 | 亚洲成a人片在线观看日本 | 精品国产一区二区三区av 性色 | 18黄暴禁片在线观看 | 亚洲欧美精品伊人久久 | 国产在线无码精品电影网 | 在线观看国产午夜福利片 | 成人无码影片精品久久久 | 亚洲男人av天堂午夜在 | 麻花豆传媒剧国产免费mv在线 | 成人无码影片精品久久久 | 精品国产乱码久久久久乱码 | 久久国内精品自在自线 | 久久久成人毛片无码 | 亚无码乱人伦一区二区 | 亚洲中文字幕在线无码一区二区 | 国产色视频一区二区三区 | 亚洲精品中文字幕久久久久 | 亚洲精品中文字幕 | 亚洲小说图区综合在线 | 日日碰狠狠躁久久躁蜜桃 | 国产亲子乱弄免费视频 | 免费无码一区二区三区蜜桃大 | 久久久久久av无码免费看大片 | 成人无码影片精品久久久 | 欧洲熟妇色 欧美 | √天堂资源地址中文在线 | 久久精品国产一区二区三区肥胖 | 国产人妻大战黑人第1集 | 国产熟女一区二区三区四区五区 | 亚洲欧美国产精品久久 | 国产热a欧美热a在线视频 | 狠狠躁日日躁夜夜躁2020 | 一区二区三区高清视频一 | 久久国语露脸国产精品电影 | 国产无套粉嫩白浆在线 | 国产网红无码精品视频 | 少妇无码av无码专区在线观看 | 大色综合色综合网站 | 十八禁真人啪啪免费网站 | av无码不卡在线观看免费 | 精品乱码久久久久久久 | 樱花草在线社区www | 网友自拍区视频精品 | 性色av无码免费一区二区三区 | 亚洲理论电影在线观看 | 日日麻批免费40分钟无码 | 伊人久久大香线焦av综合影院 | 亚洲中文字幕va福利 | 粉嫩少妇内射浓精videos | 一区二区三区高清视频一 | 成人av无码一区二区三区 | 国产另类ts人妖一区二区 | 国产精品无码成人午夜电影 | 一区二区三区乱码在线 | 欧洲 | 日日摸日日碰夜夜爽av | 国产人妻精品一区二区三区不卡 | 国产精品va在线观看无码 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲精品一区二区三区婷婷月 | 性啪啪chinese东北女人 | 中文字幕日韩精品一区二区三区 | 波多野结衣av一区二区全免费观看 | 亚洲 日韩 欧美 成人 在线观看 | 久久久精品人妻久久影视 | 国产明星裸体无码xxxx视频 | 动漫av一区二区在线观看 | 国产精品久久久久7777 | 无码国模国产在线观看 | 永久免费观看国产裸体美女 | 十八禁真人啪啪免费网站 | 亚洲中文字幕无码中字 | 成人性做爰aaa片免费看不忠 | 亚洲成a人片在线观看无码3d | 国产人妻精品一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 好屌草这里只有精品 | 国产电影无码午夜在线播放 | 色婷婷欧美在线播放内射 | 国产无套内射久久久国产 | 亚洲精品综合一区二区三区在线 | 成人精品视频一区二区三区尤物 | 日韩av无码一区二区三区 | 精品无码国产一区二区三区av | 中文字幕av无码一区二区三区电影 | 国产精品毛多多水多 | 熟妇人妻无乱码中文字幕 | 成人无码视频在线观看网站 | 成年美女黄网站色大免费视频 | 国产农村乱对白刺激视频 | 国产精品鲁鲁鲁 | 亚洲 高清 成人 动漫 | 正在播放东北夫妻内射 | 精品人妻中文字幕有码在线 | 少妇无码吹潮 | 无码人妻精品一区二区三区下载 | 中文无码伦av中文字幕 | 久久精品国产精品国产精品污 | 中文字幕无码av激情不卡 | 成 人 网 站国产免费观看 | 成人免费视频视频在线观看 免费 | 一本久久a久久精品vr综合 | 狠狠躁日日躁夜夜躁2020 | 国产午夜精品一区二区三区嫩草 | 精品国产aⅴ无码一区二区 | 国产香蕉尹人综合在线观看 | 日日碰狠狠丁香久燥 | 国产凸凹视频一区二区 | 少妇被粗大的猛进出69影院 | 亚洲成av人在线观看网址 | 美女扒开屁股让男人桶 | 理论片87福利理论电影 | 欧美刺激性大交 | 九月婷婷人人澡人人添人人爽 | 久久国产精品_国产精品 | 成在人线av无码免费 | 国精产品一品二品国精品69xx | 99久久久国产精品无码免费 | 领导边摸边吃奶边做爽在线观看 | 图片小说视频一区二区 | 久久综合色之久久综合 | 日韩精品无码一本二本三本色 | 麻豆人妻少妇精品无码专区 | 无码av岛国片在线播放 | 亚洲爆乳大丰满无码专区 | 久久人人97超碰a片精品 | 西西人体www44rt大胆高清 | 国产网红无码精品视频 | 好屌草这里只有精品 | 7777奇米四色成人眼影 | 一二三四社区在线中文视频 | 中文无码精品a∨在线观看不卡 | 天天拍夜夜添久久精品 | 国产性生交xxxxx无码 | 久久精品国产一区二区三区肥胖 | 成人欧美一区二区三区黑人 | 在线精品亚洲一区二区 | 久久精品国产精品国产精品污 | 亚洲熟妇色xxxxx亚洲 | 日本又色又爽又黄的a片18禁 | 未满成年国产在线观看 | 无码人妻丰满熟妇区毛片18 | 免费网站看v片在线18禁无码 | 国产手机在线αⅴ片无码观看 | 日韩精品无码一区二区中文字幕 | 天堂а√在线中文在线 | 日日摸日日碰夜夜爽av | 日日碰狠狠丁香久燥 | 影音先锋中文字幕无码 | 亚洲欧美综合区丁香五月小说 | 亚洲va欧美va天堂v国产综合 | 日本爽爽爽爽爽爽在线观看免 | 精品一区二区不卡无码av | 国产精品无码永久免费888 | www国产亚洲精品久久网站 | 精品国偷自产在线 | 67194成是人免费无码 | 性欧美疯狂xxxxbbbb | a片在线免费观看 | 丰满肥臀大屁股熟妇激情视频 | 偷窥日本少妇撒尿chinese | 亚洲一区二区三区国产精华液 | 国产超级va在线观看视频 | 国产九九九九九九九a片 | 2020久久香蕉国产线看观看 | 色婷婷av一区二区三区之红樱桃 | av无码久久久久不卡免费网站 | 人妻少妇精品视频专区 | 好爽又高潮了毛片免费下载 | 亚无码乱人伦一区二区 | 色综合久久中文娱乐网 | 成人毛片一区二区 | 人妻少妇精品无码专区二区 | 久久天天躁夜夜躁狠狠 | 对白脏话肉麻粗话av | 国产精品无码久久av | 欧美放荡的少妇 | 中文字幕亚洲情99在线 | 国产免费久久久久久无码 | av在线亚洲欧洲日产一区二区 | 欧美人与物videos另类 | 极品嫩模高潮叫床 | 亚洲国产精品一区二区第一页 | 夜夜影院未满十八勿进 | 永久免费观看国产裸体美女 | 波多野42部无码喷潮在线 | 天堂а√在线地址中文在线 | 男女下面进入的视频免费午夜 | 99久久精品国产一区二区蜜芽 | 18黄暴禁片在线观看 | 久久99热只有频精品8 | 丰满少妇人妻久久久久久 | 欧美老熟妇乱xxxxx | 亚洲国产精品美女久久久久 | 熟女体下毛毛黑森林 | 67194成是人免费无码 | 久久久久久久人妻无码中文字幕爆 | 未满小14洗澡无码视频网站 | 国产精品自产拍在线观看 | 欧美日韩一区二区免费视频 | 伊人久久大香线焦av综合影院 | 日本丰满熟妇videos | 亚洲精品久久久久avwww潮水 | 波多野结衣av一区二区全免费观看 | 无码国产乱人伦偷精品视频 | 亚洲欧美日韩综合久久久 | 人人爽人人爽人人片av亚洲 | 永久免费观看美女裸体的网站 | 国色天香社区在线视频 | 中文字幕色婷婷在线视频 | 中文久久乱码一区二区 | 兔费看少妇性l交大片免费 | 亚洲人成网站在线播放942 | 成熟妇人a片免费看网站 | 粗大的内捧猛烈进出视频 | 亚洲 另类 在线 欧美 制服 | 国内揄拍国内精品少妇国语 | 国产av久久久久精东av | 国产精品永久免费视频 | 亚洲成a人一区二区三区 | 亚洲一区二区三区国产精华液 | 国产人妻久久精品二区三区老狼 | 在线观看欧美一区二区三区 | 永久免费精品精品永久-夜色 | 欧美日韩一区二区综合 | 乱人伦中文视频在线观看 | 午夜福利不卡在线视频 | 国产手机在线αⅴ片无码观看 | 熟妇女人妻丰满少妇中文字幕 | 午夜肉伦伦影院 | 成人欧美一区二区三区 | 丰腴饱满的极品熟妇 | 在线播放无码字幕亚洲 | 又粗又大又硬毛片免费看 | 中文字幕无线码免费人妻 | 又大又紧又粉嫩18p少妇 | 99er热精品视频 | 亚洲国产精品久久久天堂 | 日韩无码专区 | 欧美zoozzooz性欧美 | 国产在线精品一区二区高清不卡 | 亚洲一区二区三区偷拍女厕 | 中国女人内谢69xxxxxa片 | 色婷婷欧美在线播放内射 | 色妞www精品免费视频 | 国内揄拍国内精品少妇国语 | 亚洲国产精品一区二区第一页 | 久久精品人妻少妇一区二区三区 | 日韩精品成人一区二区三区 | 日韩精品一区二区av在线 | 亚洲爆乳无码专区 | 欧美精品国产综合久久 | 丝袜 中出 制服 人妻 美腿 | 中国女人内谢69xxxx | 中文字幕色婷婷在线视频 | 精品国精品国产自在久国产87 | 欧美老熟妇乱xxxxx | 装睡被陌生人摸出水好爽 | 婷婷六月久久综合丁香 | 久久久久久久女国产乱让韩 | 久久久久久久久888 | 国产午夜福利亚洲第一 | 对白脏话肉麻粗话av | 好男人社区资源 | 亚洲精品久久久久中文第一幕 | 久久天天躁狠狠躁夜夜免费观看 | 精品久久久无码中文字幕 | 丰满少妇高潮惨叫视频 | 国产亚洲日韩欧美另类第八页 | 亚洲精品国偷拍自产在线麻豆 | 一本色道久久综合亚洲精品不卡 | 精品国产国产综合精品 | 国产熟妇另类久久久久 | 久久久精品人妻久久影视 | 波多野结衣av一区二区全免费观看 | 欧美黑人性暴力猛交喷水 | 亚洲欧美国产精品专区久久 | 狂野欧美性猛交免费视频 | 亚洲国产成人a精品不卡在线 | 国产成人综合在线女婷五月99播放 | 欧美精品无码一区二区三区 | 天天燥日日燥 | 粉嫩少妇内射浓精videos | 免费观看又污又黄的网站 | 日产精品高潮呻吟av久久 | 亚洲日韩中文字幕在线播放 | 亚洲欧美国产精品专区久久 | 中文精品无码中文字幕无码专区 | 亚洲日本一区二区三区在线 | 国产在线一区二区三区四区五区 | 国产精品久久久久9999小说 | 精品国精品国产自在久国产87 | 欧美精品国产综合久久 | 99国产欧美久久久精品 | 久久久久成人片免费观看蜜芽 | 98国产精品综合一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 精品久久久久久亚洲精品 | 国产国语老龄妇女a片 | 在线欧美精品一区二区三区 | 国产国产精品人在线视 | 性做久久久久久久免费看 | 国产精品人妻一区二区三区四 | 国产成人久久精品流白浆 | 18精品久久久无码午夜福利 | 四虎影视成人永久免费观看视频 | 性欧美熟妇videofreesex | 中文字幕无码日韩欧毛 | 3d动漫精品啪啪一区二区中 | 亚洲精品午夜国产va久久成人 | 天堂无码人妻精品一区二区三区 | 亚洲中文字幕久久无码 | 成人亚洲精品久久久久 | 无码午夜成人1000部免费视频 | 国产精品无码永久免费888 | av人摸人人人澡人人超碰下载 | 最近免费中文字幕中文高清百度 | 无码吃奶揉捏奶头高潮视频 | 无码人妻出轨黑人中文字幕 | 最新国产麻豆aⅴ精品无码 | 亚洲s色大片在线观看 | 成人精品视频一区二区 | 国内少妇偷人精品视频免费 | 高潮毛片无遮挡高清免费 | 欧美国产日产一区二区 | 国产乱人无码伦av在线a | 日韩人妻系列无码专区 | 国产精品高潮呻吟av久久4虎 | 任你躁国产自任一区二区三区 | 大色综合色综合网站 | 小sao货水好多真紧h无码视频 | 午夜福利试看120秒体验区 | 国产人妻精品一区二区三区 | 天堂一区人妻无码 | 小泽玛莉亚一区二区视频在线 | 欧美性黑人极品hd | 丝袜人妻一区二区三区 | 国产一区二区三区精品视频 | 久久久精品456亚洲影院 | 99国产欧美久久久精品 | 无套内谢的新婚少妇国语播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产成人午夜福利在线播放 | 中文毛片无遮挡高清免费 | 在线亚洲高清揄拍自拍一品区 | 国产口爆吞精在线视频 | 国产在线精品一区二区高清不卡 | 国产高潮视频在线观看 | av小次郎收藏 | 奇米影视888欧美在线观看 | 又紧又大又爽精品一区二区 | 黑人粗大猛烈进出高潮视频 | 色综合久久久无码网中文 | 国产乱人无码伦av在线a | 亚洲国产av美女网站 | 内射爽无广熟女亚洲 | 久久精品国产一区二区三区 | 日日天干夜夜狠狠爱 | 色欲久久久天天天综合网精品 | 日韩在线不卡免费视频一区 | 无码人妻黑人中文字幕 | 中文字幕无码人妻少妇免费 | 久久久久99精品国产片 | 狠狠亚洲超碰狼人久久 | 999久久久国产精品消防器材 | 精品亚洲成av人在线观看 | 四虎永久在线精品免费网址 | 强开小婷嫩苞又嫩又紧视频 | 激情五月综合色婷婷一区二区 | 精品国产国产综合精品 | 国产免费观看黄av片 | 无码午夜成人1000部免费视频 | 成人性做爰aaa片免费看不忠 | 高潮毛片无遮挡高清免费 | 国产97色在线 | 免 | 精品国产国产综合精品 | 女人高潮内射99精品 | 精品无码国产一区二区三区av | 奇米影视7777久久精品人人爽 | 天干天干啦夜天干天2017 | 亚洲aⅴ无码成人网站国产app | 免费观看激色视频网站 | www一区二区www免费 | 亚洲国产av美女网站 | 亚洲自偷自拍另类第1页 | 日韩精品乱码av一区二区 | 最近中文2019字幕第二页 | 国产精品亚洲专区无码不卡 | 人妻天天爽夜夜爽一区二区 | 乱人伦人妻中文字幕无码久久网 | 久久久亚洲欧洲日产国码αv | 十八禁视频网站在线观看 | 荡女精品导航 | 亚洲国产欧美日韩精品一区二区三区 | 伊人久久大香线焦av综合影院 | 国产一精品一av一免费 | 国产人妻人伦精品1国产丝袜 | 老司机亚洲精品影院 | 国产suv精品一区二区五 | 欧美一区二区三区视频在线观看 | 图片区 小说区 区 亚洲五月 | 国产99久久精品一区二区 | 精品国产一区二区三区四区在线看 | 玩弄中年熟妇正在播放 | 欧美阿v高清资源不卡在线播放 | 亚洲日韩av片在线观看 | 精品国产福利一区二区 | 欧美 丝袜 自拍 制服 另类 | 蜜桃臀无码内射一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 国产精品亚洲а∨无码播放麻豆 | 天天躁夜夜躁狠狠是什么心态 | 18黄暴禁片在线观看 | 激情内射亚州一区二区三区爱妻 | 98国产精品综合一区二区三区 | 国产尤物精品视频 | 99麻豆久久久国产精品免费 | 天堂久久天堂av色综合 | 九九在线中文字幕无码 | 麻豆成人精品国产免费 | 亚洲精品一区三区三区在线观看 | 无码人妻出轨黑人中文字幕 | 成人性做爰aaa片免费看不忠 | 日日摸天天摸爽爽狠狠97 | 国产免费久久精品国产传媒 | 无码吃奶揉捏奶头高潮视频 | 日韩少妇内射免费播放 | 少妇高潮一区二区三区99 | 国产色精品久久人妻 | 帮老师解开蕾丝奶罩吸乳网站 | 十八禁视频网站在线观看 | 国产一区二区三区四区五区加勒比 | 装睡被陌生人摸出水好爽 | 内射巨臀欧美在线视频 | 国产两女互慰高潮视频在线观看 | 男人的天堂2018无码 | 大肉大捧一进一出好爽视频 | 国产精品无码成人午夜电影 | 中文字幕人妻丝袜二区 | 国产黄在线观看免费观看不卡 | 成人影院yy111111在线观看 | 日本爽爽爽爽爽爽在线观看免 | 成 人影片 免费观看 | 国产精品久久福利网站 | 国产成人无码av一区二区 | 色综合天天综合狠狠爱 | 国产亚洲日韩欧美另类第八页 | 少妇性荡欲午夜性开放视频剧场 | 亚欧洲精品在线视频免费观看 | 亚洲一区二区三区无码久久 | 熟妇女人妻丰满少妇中文字幕 | 亚洲gv猛男gv无码男同 | 亚洲国产精品无码一区二区三区 | 97久久国产亚洲精品超碰热 | 国产黄在线观看免费观看不卡 | 2019午夜福利不卡片在线 | 天天爽夜夜爽夜夜爽 | 久久亚洲国产成人精品性色 | 无码播放一区二区三区 | 无套内谢的新婚少妇国语播放 | 国产亚洲人成a在线v网站 | 午夜不卡av免费 一本久久a久久精品vr综合 | 大地资源网第二页免费观看 | 亚无码乱人伦一区二区 | 狠狠色噜噜狠狠狠7777奇米 | 扒开双腿疯狂进出爽爽爽视频 | 中文字幕人妻无码一夲道 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲国产av美女网站 | 国产成人综合美国十次 | 99久久精品午夜一区二区 | 无码精品国产va在线观看dvd | 国产精品无码一区二区桃花视频 | 好男人社区资源 | 国产在线无码精品电影网 | 久久97精品久久久久久久不卡 | 日本熟妇乱子伦xxxx | 亚洲热妇无码av在线播放 | 四虎影视成人永久免费观看视频 | 中国女人内谢69xxxxxa片 | 无码av最新清无码专区吞精 | 亚洲国产高清在线观看视频 | 国产成人无码av一区二区 | 亚洲色在线无码国产精品不卡 | 日韩视频 中文字幕 视频一区 | 亚洲成色www久久网站 | 水蜜桃亚洲一二三四在线 | 人妻与老人中文字幕 | 欧美熟妇另类久久久久久不卡 | 久久久久免费看成人影片 | 无码帝国www无码专区色综合 | 亚洲精品中文字幕久久久久 | 性欧美大战久久久久久久 | 久久精品人妻少妇一区二区三区 | 色综合天天综合狠狠爱 | 粗大的内捧猛烈进出视频 | 色欲久久久天天天综合网精品 | 国产乱人偷精品人妻a片 | 一二三四社区在线中文视频 | 国产精品99爱免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 中文字幕乱妇无码av在线 | 欧美喷潮久久久xxxxx | 国产午夜亚洲精品不卡下载 | 色婷婷欧美在线播放内射 | 狠狠色噜噜狠狠狠狠7777米奇 | 任你躁在线精品免费 | 内射爽无广熟女亚洲 | 欧美 丝袜 自拍 制服 另类 | 红桃av一区二区三区在线无码av | 久久www免费人成人片 | 麻豆av传媒蜜桃天美传媒 | 国产精品久久久久久久影院 | 亚洲精品午夜国产va久久成人 | 日日天干夜夜狠狠爱 | 久精品国产欧美亚洲色aⅴ大片 | 又大又硬又黄的免费视频 | 偷窥村妇洗澡毛毛多 | 国产明星裸体无码xxxx视频 | 国产人成高清在线视频99最全资源 | 国产sm调教视频在线观看 | 国产明星裸体无码xxxx视频 | 青青草原综合久久大伊人精品 | 九九久久精品国产免费看小说 | 亚洲国产成人a精品不卡在线 | 77777熟女视频在线观看 а天堂中文在线官网 | 疯狂三人交性欧美 | 人妻体内射精一区二区三四 | 大地资源中文第3页 | 天堂а√在线中文在线 | 未满成年国产在线观看 | 无码免费一区二区三区 | 日韩精品无码免费一区二区三区 | 大肉大捧一进一出视频出来呀 | 色情久久久av熟女人妻网站 | 一二三四社区在线中文视频 | 国产97人人超碰caoprom | 东京一本一道一二三区 | 国产成人精品无码播放 | 精品熟女少妇av免费观看 | 国产手机在线αⅴ片无码观看 | 美女毛片一区二区三区四区 | 亚洲精品国产a久久久久久 | 亚洲 日韩 欧美 成人 在线观看 | 婷婷综合久久中文字幕蜜桃三电影 | 久久久国产精品无码免费专区 | 国语自产偷拍精品视频偷 | 国产午夜无码精品免费看 | 久久久久亚洲精品中文字幕 | 国产成人精品视频ⅴa片软件竹菊 | 久久精品国产99久久6动漫 | 国产明星裸体无码xxxx视频 | 日日摸夜夜摸狠狠摸婷婷 | 国产乡下妇女做爰 | 天堂а√在线中文在线 | 亚洲色偷偷偷综合网 | 国产精品嫩草久久久久 | 免费无码一区二区三区蜜桃大 | 无码人妻av免费一区二区三区 | 国产精品沙发午睡系列 | 国产精品亚洲一区二区三区喷水 | aⅴ在线视频男人的天堂 | 成人性做爰aaa片免费看不忠 | 日日橹狠狠爱欧美视频 | 久久99精品国产.久久久久 | 国产精品内射视频免费 | 日韩人妻无码一区二区三区久久99 | 久9re热视频这里只有精品 | 少妇无码av无码专区在线观看 | 天堂无码人妻精品一区二区三区 | 亚洲成av人片在线观看无码不卡 | 在线观看欧美一区二区三区 | 丰满人妻精品国产99aⅴ | 精品乱子伦一区二区三区 | 免费无码肉片在线观看 | 日本va欧美va欧美va精品 | 国产精品a成v人在线播放 | 色欲久久久天天天综合网精品 | 国产农村乱对白刺激视频 | 国产成人无码午夜视频在线观看 | 欧美freesex黑人又粗又大 | 久久国产精品偷任你爽任你 | 5858s亚洲色大成网站www | 在线a亚洲视频播放在线观看 | 久久综合香蕉国产蜜臀av | 麻豆蜜桃av蜜臀av色欲av | 欧美xxxxx精品 | 国内老熟妇对白xxxxhd | 免费乱码人妻系列无码专区 | 人人爽人人澡人人人妻 | 精品亚洲韩国一区二区三区 | 欧美丰满老熟妇xxxxx性 | 爽爽影院免费观看 | 亚洲第一无码av无码专区 | 精品aⅴ一区二区三区 | 亚洲中文无码av永久不收费 | 久久zyz资源站无码中文动漫 | 国产精华av午夜在线观看 | 欧美三级a做爰在线观看 | 波多野结衣av一区二区全免费观看 | 激情亚洲一区国产精品 | 中文字幕无线码免费人妻 | 国产尤物精品视频 | 国产av无码专区亚洲awww | 亚洲国产精品一区二区美利坚 | 亚欧洲精品在线视频免费观看 | 国产熟妇另类久久久久 | 亚洲理论电影在线观看 | 中文字幕无码免费久久99 | 日日麻批免费40分钟无码 | 中文字幕日产无线码一区 | 日本熟妇人妻xxxxx人hd | 高清不卡一区二区三区 | 亚洲国产精品成人久久蜜臀 | √8天堂资源地址中文在线 | 欧洲精品码一区二区三区免费看 | 久久久久免费看成人影片 | 亚洲无人区午夜福利码高清完整版 | 乌克兰少妇xxxx做受 | 国产无套内射久久久国产 | 图片区 小说区 区 亚洲五月 | 亚洲一区二区观看播放 | 国产乡下妇女做爰 | 亚洲区小说区激情区图片区 | 无码吃奶揉捏奶头高潮视频 | www国产精品内射老师 | 国产精品久久福利网站 | 国产成人无码a区在线观看视频app | 国产偷自视频区视频 | 久久成人a毛片免费观看网站 | 久久综合九色综合97网 | 精品国产一区二区三区四区在线看 | 精品久久久无码人妻字幂 | 5858s亚洲色大成网站www | 免费播放一区二区三区 | 日韩少妇白浆无码系列 | 亚洲欧美国产精品专区久久 | 久久综合给久久狠狠97色 | 少妇的肉体aa片免费 | 精品人妻中文字幕有码在线 | 成人免费视频视频在线观看 免费 | 国产激情无码一区二区app | 无人区乱码一区二区三区 | 国产精品亚洲lv粉色 | 动漫av一区二区在线观看 | 999久久久国产精品消防器材 | 999久久久国产精品消防器材 | 人妻少妇精品无码专区二区 | 无遮挡啪啪摇乳动态图 | 国产av剧情md精品麻豆 | 国产精品99久久精品爆乳 | 精品无码国产自产拍在线观看蜜 | 免费无码的av片在线观看 | 香港三级日本三级妇三级 | 久久无码中文字幕免费影院蜜桃 | 精品国产精品久久一区免费式 | 国产亚洲美女精品久久久2020 | 日韩成人一区二区三区在线观看 | 永久免费观看美女裸体的网站 | 国产婷婷色一区二区三区在线 | 日日碰狠狠丁香久燥 | 亚洲一区二区三区偷拍女厕 | av小次郎收藏 | 伊人久久大香线蕉亚洲 | 国产成人一区二区三区在线观看 | 精品欧洲av无码一区二区三区 | 日本熟妇浓毛 | 性欧美videos高清精品 | 亚洲一区二区三区国产精华液 | 日本高清一区免费中文视频 | 无码av免费一区二区三区试看 | 高中生自慰www网站 | 又大又硬又黄的免费视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 久久aⅴ免费观看 | 午夜福利一区二区三区在线观看 | 精品国产成人一区二区三区 | 久在线观看福利视频 | 亚洲精品美女久久久久久久 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 成年美女黄网站色大免费全看 | 领导边摸边吃奶边做爽在线观看 | 夫妻免费无码v看片 | 老熟妇乱子伦牲交视频 | 国产特级毛片aaaaaaa高清 | 全球成人中文在线 | 国产午夜无码精品免费看 | 色情久久久av熟女人妻网站 | 日本xxxx色视频在线观看免费 | 美女扒开屁股让男人桶 | 欧美丰满熟妇xxxx性ppx人交 | 999久久久国产精品消防器材 | 久久人人爽人人人人片 | 久久综合久久自在自线精品自 | 一个人看的www免费视频在线观看 | 国产成人综合在线女婷五月99播放 | 麻豆果冻传媒2021精品传媒一区下载 | 日本一区二区更新不卡 | 国产激情艳情在线看视频 | 久久国产精品萌白酱免费 | 无码乱肉视频免费大全合集 | 捆绑白丝粉色jk震动捧喷白浆 | 牛和人交xxxx欧美 | 国产精品久久国产三级国 | 牲交欧美兽交欧美 | 综合网日日天干夜夜久久 | 18精品久久久无码午夜福利 | 老司机亚洲精品影院 | 麻豆精产国品 | 日本精品少妇一区二区三区 | 麻豆蜜桃av蜜臀av色欲av | 无码午夜成人1000部免费视频 | 免费观看激色视频网站 | 成人aaa片一区国产精品 | 一本无码人妻在中文字幕免费 | 少妇人妻偷人精品无码视频 | 日本护士毛茸茸高潮 | 熟女俱乐部五十路六十路av | 扒开双腿吃奶呻吟做受视频 | 一本久久a久久精品vr综合 | 国产电影无码午夜在线播放 | 欧美色就是色 | 久久久亚洲欧洲日产国码αv | 高潮喷水的毛片 | 综合网日日天干夜夜久久 | 一本精品99久久精品77 | 免费男性肉肉影院 | 亚洲熟妇色xxxxx亚洲 | 国产精品久久久久7777 | 久久99精品国产麻豆 | av无码电影一区二区三区 | 欧美性猛交内射兽交老熟妇 | 无码一区二区三区在线观看 | 国产人妖乱国产精品人妖 | 亚洲日本一区二区三区在线 | 大地资源网第二页免费观看 | 无遮挡啪啪摇乳动态图 | 成熟妇人a片免费看网站 | 亚洲中文字幕在线观看 | 麻豆av传媒蜜桃天美传媒 | 精品久久综合1区2区3区激情 | 中文字幕乱码中文乱码51精品 | 午夜无码人妻av大片色欲 | 中文字幕无码av激情不卡 | 樱花草在线播放免费中文 | 欧美性猛交内射兽交老熟妇 | 最新国产乱人伦偷精品免费网站 | 牲欲强的熟妇农村老妇女视频 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚拍精品一区二区三区探花 | 大乳丰满人妻中文字幕日本 | 亚洲色大成网站www国产 | 国产极品视觉盛宴 | 亚洲 a v无 码免 费 成 人 a v | 小泽玛莉亚一区二区视频在线 | 日韩人妻无码一区二区三区久久99 | 国产熟女一区二区三区四区五区 | 自拍偷自拍亚洲精品10p | 一区二区三区乱码在线 | 欧洲 | 初尝人妻少妇中文字幕 | 无码午夜成人1000部免费视频 | 波多野结衣乳巨码无在线观看 | 精品无码一区二区三区的天堂 | 欧美 日韩 人妻 高清 中文 | 久久国产自偷自偷免费一区调 | 伊人久久婷婷五月综合97色 | 中文精品久久久久人妻不卡 | 久久精品人妻少妇一区二区三区 | 国产激情一区二区三区 | 亚洲天堂2017无码 | 蜜桃无码一区二区三区 | 日本在线高清不卡免费播放 | 男女作爱免费网站 | 国产凸凹视频一区二区 | 桃花色综合影院 | 性生交片免费无码看人 | 精品熟女少妇av免费观看 | 亚洲男女内射在线播放 | 真人与拘做受免费视频 | 日本精品人妻无码免费大全 | 鲁一鲁av2019在线 | 色欲久久久天天天综合网精品 | 国产乡下妇女做爰 | 久久精品中文闷骚内射 | 永久黄网站色视频免费直播 | 无码午夜成人1000部免费视频 | 中文字幕乱妇无码av在线 | 国产又爽又黄又刺激的视频 | 亚洲精品成人福利网站 | 色婷婷欧美在线播放内射 | 88国产精品欧美一区二区三区 | 国产女主播喷水视频在线观看 | 日本乱人伦片中文三区 | 亚洲色成人中文字幕网站 | 一本久久a久久精品vr综合 | 久久国产精品萌白酱免费 | 午夜成人1000部免费视频 | 免费无码午夜福利片69 | 图片小说视频一区二区 | 欧美日韩一区二区免费视频 | 国产午夜福利亚洲第一 | 亚洲人成无码网www | 高潮毛片无遮挡高清免费视频 | 久久成人a毛片免费观看网站 | 夜夜躁日日躁狠狠久久av | 色五月丁香五月综合五月 | 国产亚洲人成在线播放 | 性生交片免费无码看人 | av无码不卡在线观看免费 | 日本熟妇大屁股人妻 | 欧洲vodafone精品性 | 六十路熟妇乱子伦 | 国产舌乚八伦偷品w中 | 亚洲乱码日产精品bd | 精品无码成人片一区二区98 | 亚洲第一网站男人都懂 | 午夜福利试看120秒体验区 | 国内精品久久毛片一区二区 | 粗大的内捧猛烈进出视频 | 久久综合给合久久狠狠狠97色 | 露脸叫床粗话东北少妇 | 欧美老妇与禽交 | 女人被男人爽到呻吟的视频 | √天堂资源地址中文在线 | 亚洲综合无码一区二区三区 | 在线观看国产午夜福利片 | 欧美国产日产一区二区 | 亚洲第一无码av无码专区 | 99久久婷婷国产综合精品青草免费 | 亚洲成色www久久网站 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲精品中文字幕乱码 | 精品久久8x国产免费观看 | 欧美三级a做爰在线观看 | 四虎国产精品免费久久 | 无码国产激情在线观看 | 国产肉丝袜在线观看 | 亚洲国精产品一二二线 | 亚洲人成网站在线播放942 | 国产精品人人爽人人做我的可爱 | 国产精品va在线播放 | 中文字幕无码日韩专区 | 一本精品99久久精品77 | 欧美日韩视频无码一区二区三 | 美女毛片一区二区三区四区 | 国产人妻人伦精品1国产丝袜 | 精品亚洲成av人在线观看 | 国产在线精品一区二区高清不卡 | 国产九九九九九九九a片 | 国产麻豆精品一区二区三区v视界 | 国产国产精品人在线视 | 国精产品一品二品国精品69xx | 亚洲 a v无 码免 费 成 人 a v | 国产午夜福利100集发布 | 亚洲精品久久久久久一区二区 | 在线欧美精品一区二区三区 | 亚洲国产精品成人久久蜜臀 | 最近中文2019字幕第二页 | 人妻中文无码久热丝袜 | 免费看少妇作爱视频 | 国产午夜福利亚洲第一 | 丰满少妇弄高潮了www | 99久久无码一区人妻 | 欧美人与善在线com | 成熟人妻av无码专区 | 人人妻人人澡人人爽欧美精品 | 亚洲 激情 小说 另类 欧美 | 精品无人区无码乱码毛片国产 | 婷婷丁香五月天综合东京热 | 性色av无码免费一区二区三区 | 欧美性生交活xxxxxdddd | 午夜精品一区二区三区的区别 | 久久久久免费看成人影片 | 国产一区二区三区四区五区加勒比 | 欧美熟妇另类久久久久久不卡 | 成 人 网 站国产免费观看 | 久久久久久亚洲精品a片成人 | 国产精品久久久久久久影院 | 人人超人人超碰超国产 | а√天堂www在线天堂小说 | аⅴ资源天堂资源库在线 | 精品久久久久久亚洲精品 | 欧美刺激性大交 | 亚洲日韩中文字幕在线播放 | 日本丰满护士爆乳xxxx | 欧美老人巨大xxxx做受 | 亚洲人亚洲人成电影网站色 | av无码不卡在线观看免费 | 精品少妇爆乳无码av无码专区 | 国产绳艺sm调教室论坛 | 国产一区二区三区四区五区加勒比 | 一区二区三区高清视频一 | 熟妇人妻激情偷爽文 | 99久久亚洲精品无码毛片 | 国产精品香蕉在线观看 | 日本欧美一区二区三区乱码 | 狠狠色色综合网站 | 青草视频在线播放 | 麻豆国产97在线 | 欧洲 | 久久天天躁狠狠躁夜夜免费观看 | 成在人线av无码免费 | 97色伦图片97综合影院 | 日本一区二区三区免费高清 | 国产精品爱久久久久久久 | 欧美精品无码一区二区三区 | 免费看男女做好爽好硬视频 | av小次郎收藏 | 精品国产一区二区三区四区 | 精品久久综合1区2区3区激情 | 国产黑色丝袜在线播放 | 黑森林福利视频导航 | 在线观看国产午夜福利片 | 中文字幕+乱码+中文字幕一区 | 国产美女精品一区二区三区 | 中文字幕 人妻熟女 | 亚洲a无码综合a国产av中文 | 精品少妇爆乳无码av无码专区 | 国产真实夫妇视频 | 无码一区二区三区在线 | 亚洲精品中文字幕 | 一本色道久久综合狠狠躁 | 黑人粗大猛烈进出高潮视频 | 久久久久久久人妻无码中文字幕爆 | 成人精品一区二区三区中文字幕 | 亚洲日韩av片在线观看 | 精品欧洲av无码一区二区三区 | 青青草原综合久久大伊人精品 | 色一情一乱一伦 | 久久精品成人欧美大片 | 亚洲aⅴ无码成人网站国产app | 亚洲精品一区二区三区在线观看 | 亚洲乱码中文字幕在线 | 久久精品成人欧美大片 | 日欧一片内射va在线影院 | 亚洲国产精品无码久久久久高潮 | 国产极品美女高潮无套在线观看 | 无码人妻丰满熟妇区五十路百度 | 天天燥日日燥 | 成人性做爰aaa片免费看不忠 | 在线 国产 欧美 亚洲 天堂 | 色欲久久久天天天综合网精品 | 午夜无码区在线观看 | 成人av无码一区二区三区 | 男女猛烈xx00免费视频试看 | 樱花草在线社区www | 四虎永久在线精品免费网址 | 国产肉丝袜在线观看 | 奇米影视7777久久精品人人爽 | 人人妻人人澡人人爽人人精品浪潮 | 中国女人内谢69xxxxxa片 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲综合色区中文字幕 | 波多野结衣av一区二区全免费观看 | 奇米影视7777久久精品人人爽 | 久久久久亚洲精品中文字幕 | 老司机亚洲精品影院无码 | 又黄又爽又色的视频 | 女人被男人躁得好爽免费视频 | 欧美性猛交xxxx富婆 | 亚洲色偷偷偷综合网 | 国产精品久久久久9999小说 | 国产精品久久久久无码av色戒 | 久久无码人妻影院 | 人人妻人人澡人人爽欧美精品 | 少妇的肉体aa片免费 | 蜜臀aⅴ国产精品久久久国产老师 | 久久国产精品_国产精品 | 18黄暴禁片在线观看 | 99久久精品日本一区二区免费 | 国产香蕉97碰碰久久人人 | 男女超爽视频免费播放 | 亚洲狠狠色丁香婷婷综合 | 欧美亚洲日韩国产人成在线播放 | 国产精华av午夜在线观看 | 久久亚洲中文字幕精品一区 | 日本爽爽爽爽爽爽在线观看免 | 波多野结衣aⅴ在线 | 久久天天躁狠狠躁夜夜免费观看 | 麻豆国产97在线 | 欧洲 | 全球成人中文在线 | 未满成年国产在线观看 | 国产乱码精品一品二品 | 国产又爽又黄又刺激的视频 | 狠狠色欧美亚洲狠狠色www | 97精品国产97久久久久久免费 | 国产亚洲日韩欧美另类第八页 | 国产无遮挡又黄又爽又色 | 亚洲精品欧美二区三区中文字幕 | 亚洲精品午夜无码电影网 | 亚洲区欧美区综合区自拍区 | 真人与拘做受免费视频一 | 伊人久久大香线焦av综合影院 | 国产网红无码精品视频 | 国产一区二区三区精品视频 | 久久久国产精品无码免费专区 | 狠狠色欧美亚洲狠狠色www | 大屁股大乳丰满人妻 | 亚洲国产日韩a在线播放 | 双乳奶水饱满少妇呻吟 | 国产成人精品一区二区在线小狼 | 成 人 网 站国产免费观看 | 性欧美大战久久久久久久 | 特大黑人娇小亚洲女 | 国产av无码专区亚洲awww | 国产精品久久久久无码av色戒 | 亚洲欧美精品aaaaaa片 | 日日噜噜噜噜夜夜爽亚洲精品 | 99久久精品国产一区二区蜜芽 | 夫妻免费无码v看片 | 国内精品人妻无码久久久影院 | 国内揄拍国内精品人妻 | 亚洲中文字幕久久无码 | 亚洲乱码日产精品bd | 国产精品办公室沙发 | 亚洲一区av无码专区在线观看 | 成人性做爰aaa片免费看不忠 | 97资源共享在线视频 | 久久人人爽人人爽人人片av高清 | 国产熟妇另类久久久久 | 日本xxxx色视频在线观看免费 | 欧美日本精品一区二区三区 | 图片区 小说区 区 亚洲五月 | 亚洲高清偷拍一区二区三区 | 波多野结衣高清一区二区三区 | 麻豆md0077饥渴少妇 | 97久久精品无码一区二区 | 性做久久久久久久久 | 又大又黄又粗又爽的免费视频 | 成人无码精品1区2区3区免费看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 黑人大群体交免费视频 | 国产三级精品三级男人的天堂 | 无码纯肉视频在线观看 | 少妇性荡欲午夜性开放视频剧场 | 日日麻批免费40分钟无码 | 国产精品毛多多水多 | 精品久久8x国产免费观看 | 日韩欧美成人免费观看 | 黄网在线观看免费网站 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 成人免费视频视频在线观看 免费 | 97人妻精品一区二区三区 | 亚洲国产av美女网站 | 日韩精品a片一区二区三区妖精 | 国产av无码专区亚洲a∨毛片 | 日韩亚洲欧美中文高清在线 | 日本精品久久久久中文字幕 | 国产免费久久精品国产传媒 | 少妇愉情理伦片bd | 免费观看又污又黄的网站 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 男人扒开女人内裤强吻桶进去 | 欧美刺激性大交 | 性做久久久久久久免费看 | 亚洲熟妇自偷自拍另类 | 偷窥日本少妇撒尿chinese | 婷婷色婷婷开心五月四房播播 | 国产精品视频免费播放 | 日本肉体xxxx裸交 | 久久精品女人天堂av免费观看 | 波多野结衣乳巨码无在线观看 | 亚洲欧洲日本无在线码 | 大地资源网第二页免费观看 | 亚洲成av人在线观看网址 | 国产精品福利视频导航 | 人妻少妇精品无码专区动漫 | 国语自产偷拍精品视频偷 | 亚洲中文字幕无码中文字在线 | 国产日产欧产精品精品app | 久久精品中文字幕大胸 | 亚洲第一无码av无码专区 | 久久亚洲精品成人无码 | 色噜噜亚洲男人的天堂 | 亚无码乱人伦一区二区 | 亚洲色在线无码国产精品不卡 | 丰满护士巨好爽好大乳 | 欧美黑人乱大交 | 内射巨臀欧美在线视频 | 亚洲一区二区三区无码久久 | 国产成人综合美国十次 | 67194成是人免费无码 | 国产口爆吞精在线视频 | 色婷婷综合激情综在线播放 | 在线 国产 欧美 亚洲 天堂 | 东京一本一道一二三区 | 亚洲色欲久久久综合网东京热 | v一区无码内射国产 | 久久无码人妻影院 | 天下第一社区视频www日本 | 精品一二三区久久aaa片 | 亚洲中文字幕在线观看 | 久久婷婷五月综合色国产香蕉 | 2020最新国产自产精品 | 人人超人人超碰超国产 | 少妇性l交大片欧洲热妇乱xxx | 国产精品怡红院永久免费 | 亚洲高清偷拍一区二区三区 | 国产人妖乱国产精品人妖 | 日本乱偷人妻中文字幕 | 色综合久久88色综合天天 | 女人和拘做爰正片视频 | 99久久99久久免费精品蜜桃 | 一二三四在线观看免费视频 | 麻豆国产丝袜白领秘书在线观看 | 国产婷婷色一区二区三区在线 | 国产免费观看黄av片 | 一本无码人妻在中文字幕免费 | 中文亚洲成a人片在线观看 | 99久久精品午夜一区二区 | 毛片内射-百度 | 国产成人亚洲综合无码 | 国产成人精品三级麻豆 | 亚洲乱亚洲乱妇50p | 亚洲爆乳大丰满无码专区 | 狂野欧美性猛xxxx乱大交 | 亚洲日韩乱码中文无码蜜桃臀网站 | 老太婆性杂交欧美肥老太 | 丰满妇女强制高潮18xxxx | 日韩成人一区二区三区在线观看 | 国产av无码专区亚洲a∨毛片 | 98国产精品综合一区二区三区 | yw尤物av无码国产在线观看 | 精品一二三区久久aaa片 | 久久久av男人的天堂 | 国产性生大片免费观看性 | 国语自产偷拍精品视频偷 | 日本丰满护士爆乳xxxx | 亚洲 另类 在线 欧美 制服 | 欧洲极品少妇 | 久久精品丝袜高跟鞋 | 精品一区二区不卡无码av | 国产免费无码一区二区视频 | 久久精品国产精品国产精品污 | aⅴ亚洲 日韩 色 图网站 播放 | 色老头在线一区二区三区 | 99久久久无码国产精品免费 | 亚洲国产午夜精品理论片 | 国语自产偷拍精品视频偷 | 极品嫩模高潮叫床 | 青青久在线视频免费观看 | 国产无套粉嫩白浆在线 | 捆绑白丝粉色jk震动捧喷白浆 | 国产成人无码a区在线观看视频app | 亚洲成熟女人毛毛耸耸多 | 精品国产一区av天美传媒 | 国产精品亚洲综合色区韩国 | 婷婷六月久久综合丁香 | 亚洲国产欧美日韩精品一区二区三区 | 国产成人精品视频ⅴa片软件竹菊 | 欧美丰满少妇xxxx性 | 丰满少妇弄高潮了www | 中国女人内谢69xxxx | 欧美日韩视频无码一区二区三 | 黑人巨大精品欧美一区二区 | 国产人妻精品午夜福利免费 | 99国产精品白浆在线观看免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产午夜亚洲精品不卡下载 | 欧美亚洲日韩国产人成在线播放 | 国产香蕉尹人综合在线观看 | 夜夜高潮次次欢爽av女 | 牲欲强的熟妇农村老妇女视频 | 狂野欧美性猛交免费视频 | 国产成人精品一区二区在线小狼 | 亚洲国产精品一区二区第一页 | 国内精品九九久久久精品 | 亚洲男女内射在线播放 | 国产真人无遮挡作爱免费视频 | 日韩视频 中文字幕 视频一区 | 黄网在线观看免费网站 | 欧美 日韩 人妻 高清 中文 | 亚洲精品成人福利网站 | 亚洲综合另类小说色区 | 亚洲精品国产第一综合99久久 | 97资源共享在线视频 | 国产乱码精品一品二品 | 少妇邻居内射在线 | 国产熟女一区二区三区四区五区 | av人摸人人人澡人人超碰下载 | 国产九九九九九九九a片 | 久久综合激激的五月天 | 免费观看的无遮挡av | 日韩精品成人一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 亚洲日韩一区二区三区 | 国产一精品一av一免费 | 亚洲精品久久久久久久久久久 | 一本色道久久综合亚洲精品不卡 | 亚洲国产高清在线观看视频 | 国产一区二区不卡老阿姨 | 国产凸凹视频一区二区 | 在线天堂新版最新版在线8 | 日本大香伊一区二区三区 | 日韩精品无码一本二本三本色 | 国产一区二区不卡老阿姨 | 亚洲va欧美va天堂v国产综合 | 中文字幕精品av一区二区五区 | 台湾无码一区二区 | 青青青手机频在线观看 | 亚洲精品久久久久久久久久久 | 宝宝好涨水快流出来免费视频 | 内射爽无广熟女亚洲 | 欧美午夜特黄aaaaaa片 | 精品久久久久久亚洲精品 | 亚洲国产欧美日韩精品一区二区三区 | 国产三级精品三级男人的天堂 | 麻豆国产人妻欲求不满谁演的 | 精品欧洲av无码一区二区三区 | 美女扒开屁股让男人桶 | 内射后入在线观看一区 | 国产成人综合在线女婷五月99播放 | 日韩av无码一区二区三区 | 免费网站看v片在线18禁无码 | 久久五月精品中文字幕 | 国精产品一品二品国精品69xx | 在线观看国产午夜福利片 | 婷婷综合久久中文字幕蜜桃三电影 | 国产69精品久久久久app下载 | 午夜丰满少妇性开放视频 | 亚洲国产欧美在线成人 | 国产香蕉97碰碰久久人人 | 久久天天躁狠狠躁夜夜免费观看 | 麻豆人妻少妇精品无码专区 | 成年美女黄网站色大免费全看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲精品国产精品乱码不卡 | 精品夜夜澡人妻无码av蜜桃 | 97精品国产97久久久久久免费 | 欧美xxxx黑人又粗又长 | 97精品国产97久久久久久免费 | 亚洲 欧美 激情 小说 另类 | 亚洲综合无码久久精品综合 | 久久久久久久人妻无码中文字幕爆 | 对白脏话肉麻粗话av | 日日干夜夜干 | 亚洲日韩av一区二区三区中文 | 理论片87福利理论电影 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 中文字幕av无码一区二区三区电影 | 国内揄拍国内精品少妇国语 | 国产午夜亚洲精品不卡下载 | 露脸叫床粗话东北少妇 | 亚洲一区二区三区四区 | 亚洲精品www久久久 | 免费看男女做好爽好硬视频 | 又紧又大又爽精品一区二区 | 国产成人综合在线女婷五月99播放 | 日本www一道久久久免费榴莲 | 四十如虎的丰满熟妇啪啪 | 日日摸天天摸爽爽狠狠97 | 欧美激情综合亚洲一二区 | 国产美女精品一区二区三区 | 亚洲精品久久久久久久久久久 | 男女作爱免费网站 | 国产精品亚洲а∨无码播放麻豆 | 久久综合九色综合97网 | 欧美日韩视频无码一区二区三 | 人人妻人人澡人人爽人人精品 | 久久久国产精品无码免费专区 | 少妇性俱乐部纵欲狂欢电影 | 国产精品无码一区二区三区不卡 | 久久久国产精品无码免费专区 | 亚洲第一无码av无码专区 | 十八禁视频网站在线观看 | 一二三四社区在线中文视频 | 国产精品免费大片 | 亚洲无人区午夜福利码高清完整版 | 色欲综合久久中文字幕网 | 老司机亚洲精品影院无码 | 欧美高清在线精品一区 | 中文字幕无码免费久久9一区9 | 欧美亚洲国产一区二区三区 | 野狼第一精品社区 | 波多野42部无码喷潮在线 | 久久精品中文字幕大胸 | 青青青手机频在线观看 | 久久99精品久久久久久动态图 | 国产 浪潮av性色四虎 | 亚洲大尺度无码无码专区 | 成人av无码一区二区三区 | 色欲人妻aaaaaaa无码 | 国产亚洲精品精品国产亚洲综合 | 无码av免费一区二区三区试看 | 国产 精品 自在自线 | 强伦人妻一区二区三区视频18 | 国产精品久久久久久亚洲影视内衣 | 国产精品国产三级国产专播 | 亚洲人成人无码网www国产 | 亚洲国产日韩a在线播放 | 国产偷抇久久精品a片69 | 精品无码成人片一区二区98 | 亚洲色大成网站www国产 | 麻豆人妻少妇精品无码专区 | 色婷婷欧美在线播放内射 | 东京无码熟妇人妻av在线网址 | 永久免费观看美女裸体的网站 | 最近中文2019字幕第二页 | 老子影院午夜精品无码 | 少妇被黑人到高潮喷出白浆 | 精品国产一区二区三区av 性色 | 内射后入在线观看一区 | 成年女人永久免费看片 | 国产又粗又硬又大爽黄老大爷视 | 一二三四社区在线中文视频 | 丰满岳乱妇在线观看中字无码 | 免费人成在线观看网站 | 亚洲国产成人av在线观看 | 色欲人妻aaaaaaa无码 | 人妻有码中文字幕在线 | 精品久久久久久人妻无码中文字幕 | 任你躁在线精品免费 | 性欧美熟妇videofreesex | 成人aaa片一区国产精品 | 日本一区二区三区免费高清 | 成熟人妻av无码专区 | 乱码午夜-极国产极内射 | 亚洲人成影院在线无码按摩店 | 久久精品丝袜高跟鞋 | 国产色在线 | 国产 | 亚洲中文字幕va福利 | 婷婷丁香五月天综合东京热 | 亚洲小说图区综合在线 | 中文字幕无码免费久久99 | 性生交片免费无码看人 | 日本www一道久久久免费榴莲 | 亚洲国产精华液网站w | 久久精品99久久香蕉国产色戒 | 精品熟女少妇av免费观看 | 老头边吃奶边弄进去呻吟 | 亚洲成av人在线观看网址 | 亚洲综合伊人久久大杳蕉 | 亚洲人成无码网www | 图片区 小说区 区 亚洲五月 | 狠狠躁日日躁夜夜躁2020 | 国产在线精品一区二区高清不卡 | 成熟女人特级毛片www免费 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产精品国产三级国产专播 | 一区二区传媒有限公司 | 1000部啪啪未满十八勿入下载 | 久久熟妇人妻午夜寂寞影院 | 欧美日本免费一区二区三区 | 欧美午夜特黄aaaaaa片 | 中文字幕无码乱人伦 | 国产激情无码一区二区 | 中文字幕av日韩精品一区二区 | 高潮喷水的毛片 | 99久久精品日本一区二区免费 | 亚洲国产av精品一区二区蜜芽 | 国产卡一卡二卡三 | 成人无码视频免费播放 | 狠狠亚洲超碰狼人久久 | 欧美人与禽猛交狂配 | 中文字幕无码av波多野吉衣 | 久久综合激激的五月天 | 97久久国产亚洲精品超碰热 | 蜜桃av抽搐高潮一区二区 | 人人澡人人透人人爽 | 中文字幕人妻无码一夲道 | 日日摸天天摸爽爽狠狠97 | 国产熟女一区二区三区四区五区 | 国产福利视频一区二区 | 国产免费久久精品国产传媒 | 亚洲日本va午夜在线电影 | 无码中文字幕色专区 | 女人被爽到呻吟gif动态图视看 | 女人被男人爽到呻吟的视频 | 人人妻人人澡人人爽欧美精品 | 又大又紧又粉嫩18p少妇 | 中文字幕色婷婷在线视频 | 国产色视频一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 黄网在线观看免费网站 | 亚洲成av人片天堂网无码】 | 欧美成人午夜精品久久久 | 红桃av一区二区三区在线无码av | 亚洲国产综合无码一区 | 人人妻人人澡人人爽人人精品浪潮 | 国产办公室秘书无码精品99 | 精品无人国产偷自产在线 | 欧美性生交活xxxxxdddd | 欧美日韩人成综合在线播放 | 老熟女重囗味hdxx69 | 99久久精品午夜一区二区 | 高清国产亚洲精品自在久久 | 强伦人妻一区二区三区视频18 | 亚洲欧美精品aaaaaa片 | 少妇人妻大乳在线视频 | 精品欧洲av无码一区二区三区 | 久久国产精品精品国产色婷婷 | 久久久精品成人免费观看 | 三级4级全黄60分钟 | 麻豆av传媒蜜桃天美传媒 | 亚洲精品一区二区三区婷婷月 | 日本大香伊一区二区三区 | 色综合天天综合狠狠爱 | 国产偷自视频区视频 | 国产人妻人伦精品1国产丝袜 | 国产黄在线观看免费观看不卡 | 国产激情无码一区二区app | 国产av无码专区亚洲a∨毛片 | 黑人玩弄人妻中文在线 | 成人影院yy111111在线观看 | 4hu四虎永久在线观看 | 亚洲精品一区二区三区四区五区 | 少妇性荡欲午夜性开放视频剧场 | 日韩精品无码一区二区中文字幕 | 露脸叫床粗话东北少妇 | 国产精品理论片在线观看 | 狠狠色色综合网站 | 国产精品高潮呻吟av久久4虎 | 亚洲自偷精品视频自拍 | 色窝窝无码一区二区三区色欲 | 精品国产麻豆免费人成网站 | 无码av岛国片在线播放 | 成人免费视频一区二区 | 亚洲成a人片在线观看无码3d | 欧美性生交xxxxx久久久 | 色综合视频一区二区三区 | 精品水蜜桃久久久久久久 | 人人爽人人澡人人人妻 | 荡女精品导航 | 国产成人无码午夜视频在线观看 | 国产97人人超碰caoprom | 欧美成人家庭影院 | 丰满少妇人妻久久久久久 | 成人三级无码视频在线观看 | 国产无遮挡又黄又爽免费视频 | 水蜜桃色314在线观看 | 国内综合精品午夜久久资源 | 亚洲成熟女人毛毛耸耸多 | 日本精品少妇一区二区三区 | 国产午夜无码精品免费看 | 亚洲精品午夜国产va久久成人 | 亚洲精品综合一区二区三区在线 | 久久久久人妻一区精品色欧美 | 成人无码精品一区二区三区 | 色妞www精品免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 夜夜夜高潮夜夜爽夜夜爰爰 | 无码福利日韩神码福利片 | 精品国产福利一区二区 | 76少妇精品导航 | 亚洲欧美精品aaaaaa片 | 国产偷国产偷精品高清尤物 | 成人免费视频在线观看 | 伊在人天堂亚洲香蕉精品区 | 日韩av无码一区二区三区不卡 | 兔费看少妇性l交大片免费 | aⅴ在线视频男人的天堂 | 欧美 日韩 人妻 高清 中文 | 99久久精品日本一区二区免费 | 小泽玛莉亚一区二区视频在线 | 日韩视频 中文字幕 视频一区 | 久久国产精品精品国产色婷婷 | 成人av无码一区二区三区 | 国产欧美亚洲精品a | 久久zyz资源站无码中文动漫 | 蜜桃臀无码内射一区二区三区 | 国产亚洲视频中文字幕97精品 | 久久aⅴ免费观看 | 精品人人妻人人澡人人爽人人 | 国产99久久精品一区二区 | 夜夜高潮次次欢爽av女 | 精品一区二区不卡无码av | 久久久久成人片免费观看蜜芽 | 亚洲日本va中文字幕 | 成人亚洲精品久久久久 | 亚洲综合精品香蕉久久网 | 亚洲成av人片在线观看无码不卡 | 中文字幕无码免费久久99 | 三级4级全黄60分钟 | 国内丰满熟女出轨videos | 欧美国产日韩久久mv | 国内综合精品午夜久久资源 | 国产精品美女久久久网av | 青草视频在线播放 | 亚洲色欲色欲欲www在线 | 小sao货水好多真紧h无码视频 | 亚洲成a人一区二区三区 | 久久久久久久久888 | 精品成在人线av无码免费看 | 国产婷婷色一区二区三区在线 | 久久午夜无码鲁丝片秋霞 | 国产亚洲tv在线观看 | 欧美成人高清在线播放 | 国产成人无码av片在线观看不卡 | 国产九九九九九九九a片 | 无码午夜成人1000部免费视频 | 亚洲精品国偷拍自产在线麻豆 | 国产偷抇久久精品a片69 | 亚洲国产欧美国产综合一区 | 无码播放一区二区三区 | 亚洲 激情 小说 另类 欧美 | 久久久久se色偷偷亚洲精品av | 内射老妇bbwx0c0ck | 色一情一乱一伦一视频免费看 | 欧美肥老太牲交大战 | 5858s亚洲色大成网站www | 久久亚洲精品中文字幕无男同 | 国产高清不卡无码视频 | 一本色道久久综合亚洲精品不卡 | 国产精品美女久久久 | 亚洲乱码中文字幕在线 | 国产成人无码av片在线观看不卡 | 骚片av蜜桃精品一区 | 国产又爽又黄又刺激的视频 | 久久伊人色av天堂九九小黄鸭 | 亚洲 欧美 激情 小说 另类 | 国产成人精品视频ⅴa片软件竹菊 | 无码av岛国片在线播放 | 日本熟妇大屁股人妻 | 宝宝好涨水快流出来免费视频 | 亚洲国产精品毛片av不卡在线 | 在线天堂新版最新版在线8 | 国产精品久久福利网站 | 亚洲精品成a人在线观看 | 久久伊人色av天堂九九小黄鸭 | 国精品人妻无码一区二区三区蜜柚 | 性史性农村dvd毛片 | 无码人妻出轨黑人中文字幕 | 国产av一区二区三区最新精品 | 久久99精品国产麻豆蜜芽 | 国产精品香蕉在线观看 | 国产精品久久久久久亚洲毛片 | 国产成人精品必看 | 99久久99久久免费精品蜜桃 | 日韩精品无码一区二区中文字幕 | 沈阳熟女露脸对白视频 | 国产精品久久久久影院嫩草 | 人人妻人人澡人人爽精品欧美 | 亚洲精品久久久久久一区二区 | 爽爽影院免费观看 | 国产精品香蕉在线观看 | 国产午夜精品一区二区三区嫩草 | a在线观看免费网站大全 | 日日鲁鲁鲁夜夜爽爽狠狠 | 2020最新国产自产精品 | 日韩少妇白浆无码系列 | 人妻少妇精品久久 | 亚洲日韩中文字幕在线播放 | 无码国产色欲xxxxx视频 | 大肉大捧一进一出视频出来呀 | 亚洲区小说区激情区图片区 | 日韩av无码一区二区三区不卡 | 精品无码一区二区三区爱欲 | 成人无码精品一区二区三区 | 亚洲欧洲日本综合aⅴ在线 | 亚洲自偷自拍另类第1页 | 亚洲人成影院在线观看 | 日本xxxx色视频在线观看免费 | 久久精品中文字幕大胸 | 亚洲日韩精品欧美一区二区 | 国产精品欧美成人 | 婷婷五月综合缴情在线视频 | 亚洲欧美中文字幕5发布 | 成人女人看片免费视频放人 | 综合激情五月综合激情五月激情1 | 影音先锋中文字幕无码 | 国产色视频一区二区三区 | www成人国产高清内射 | av无码久久久久不卡免费网站 | 亚洲一区二区观看播放 | 欧美三级a做爰在线观看 | 午夜性刺激在线视频免费 | 色综合久久中文娱乐网 | 国产精品资源一区二区 | 三级4级全黄60分钟 | 亚洲va欧美va天堂v国产综合 | 精品日本一区二区三区在线观看 | 国产精品丝袜黑色高跟鞋 | 国产一区二区三区日韩精品 | 国产精品成人av在线观看 | 亚洲精品国产品国语在线观看 | 大肉大捧一进一出视频出来呀 | 麻豆md0077饥渴少妇 | 国产成人无码a区在线观看视频app | 最近免费中文字幕中文高清百度 | 一本久道久久综合婷婷五月 | 麻豆国产97在线 | 欧洲 | 亚洲乱码中文字幕在线 | 成 人 网 站国产免费观看 | 又紧又大又爽精品一区二区 | 又粗又大又硬又长又爽 | 国产无遮挡吃胸膜奶免费看 | 麻豆精品国产精华精华液好用吗 | 成年美女黄网站色大免费全看 | 亚洲小说春色综合另类 | 亚洲欧美日韩成人高清在线一区 | 国产成人综合色在线观看网站 | 精品熟女少妇av免费观看 | 欧美 丝袜 自拍 制服 另类 | 欧美三级a做爰在线观看 | 久久久成人毛片无码 | 久久久久亚洲精品中文字幕 | 国产精品亚洲一区二区三区喷水 | 国内少妇偷人精品视频 | 麻豆国产丝袜白领秘书在线观看 | 一本色道婷婷久久欧美 | 女人高潮内射99精品 | 无码人妻久久一区二区三区不卡 | 免费看男女做好爽好硬视频 | 国产精品第一国产精品 | 亚洲综合色区中文字幕 | 亚洲精品www久久久 | 爽爽影院免费观看 | 精品日本一区二区三区在线观看 | 国产欧美精品一区二区三区 | 亚洲色在线无码国产精品不卡 | 欧美人妻一区二区三区 | 亚洲精品国产精品乱码不卡 | 亚洲 a v无 码免 费 成 人 a v | 中文字幕无码乱人伦 | 强奷人妻日本中文字幕 | 丰满人妻被黑人猛烈进入 | 亚洲人成网站免费播放 | 日本精品高清一区二区 | 大肉大捧一进一出好爽视频 | 久久久久久久久888 | 成年美女黄网站色大免费视频 | 一本久道久久综合婷婷五月 | 国产超碰人人爽人人做人人添 | 欧美日韩一区二区三区自拍 |