精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文搞懂Redis的三種集群方案

數據庫 其他數據庫 Redis
雖然現在各大云平臺有提供緩存服務可以直接使用,但了解一下其背后的實現與原理總還是有些必要(比如面試), 本文就一起來學習一下Redis的幾種集群方案。

 在開發測試環境中,我們一般搭建Redis的單實例來應對開發測試需求,但是在生產環境,如果對可用性、可靠性要求較高,則需要引入Redis的集群方案。雖然現在各大云平臺有提供緩存服務可以直接使用,但了解一下其背后的實現與原理總還是有些必要(比如面試), 本文就一起來學習一下Redis的幾種集群方案。

Redis支持三種集群方案

  •  主從復制模式
  •  Sentinel(哨兵)模式
  •  Cluster模式

主從復制模式

1. 基本原理

主從復制模式中包含一個主數據庫實例(master)與一個或多個從數據庫實例(slave),如下圖

客戶端可對主數據庫進行讀寫操作,對從數據庫進行讀操作,主數據庫寫入的數據會實時自動同步給從數據庫。

具體工作機制為:

  1.  slave啟動后,向master發送SYNC命令,master接收到SYNC命令后通過bgsave保存快照(即上文所介紹的RDB持久化),并使用緩沖區記錄保存快照這段時間內執行的寫命令
  2.  master將保存的快照文件發送給slave,并繼續記錄執行的寫命令
  3.  slave接收到快照文件后,加載快照文件,載入數據
  4.  master快照發送完后開始向slave發送緩沖區的寫命令,slave接收命令并執行,完成復制初始化
  5.  此后master每次執行一個寫命令都會同步發送給slave,保持master與slave之間數據的一致性

2. 部署示例

本示例基于Redis 5.0.3版。

redis.conf的主要配置 

  1. ###網絡相關###  
  2. # bind 127.0.0.1 # 綁定監聽的網卡IP,注釋掉或配置成0.0.0.0可使任意IP均可訪問  
  3. protected-mode no # 關閉保護模式,使用密碼訪問  
  4. port 6379  # 設置監聽端口,建議生產環境均使用自定義端口  
  5. timeout 30 # 客戶端連接空閑多久后斷開連接,單位秒,0表示禁用  
  6. ###通用配置###  
  7. daemonize yes # 在后臺運行  
  8. pidfile /var/run/redis_6379.pid  # pid進程文件名  
  9. logfile /usr/local/redis/logs/redis.log # 日志文件的位置  
  10. ###RDB持久化配置###  
  11. save 900 1 # 900s內至少一次寫操作則執行bgsave進行RDB持久化  
  12. save 300 10  
  13. save 60 10000   
  14. # 如果禁用RDB持久化,可在這里添加 save ""  
  15. rdbcompression yes #是否對RDB文件進行壓縮,建議設置為no,以(磁盤)空間換(CPU)時間  
  16. dbfilename dump.rdb # RDB文件名稱  
  17. dir /usr/local/redis/datas # RDB文件保存路徑,AOF文件也保存在這里  
  18. ###AOF配置###  
  19. appendonly yes # 默認值是no,表示不使用AOF增量持久化的方式,使用RDB全量持久化的方式  
  20. appendfsync everysec # 可選值 always, everysec,no,建議設置為everysec  
  21. ###設置密碼###  
  22. requirepass 123456 # 設置復雜一點的密碼 

部署主從復制模式只需稍微調整slave的配置,在redis.conf中添加 

  1. replicaof 127.0.0.1 6379 # master的ip,port  
  2. masterauth 123456 # master的密碼 
  3. replica-serve-stale-data no # 如果slave無法與master同步,設置成slave不可讀,方便監控腳本發現問題 

本示例在單臺服務器上配置master端口6379,兩個slave端口分別為7001,7002,啟動master,再啟動兩個slave 

  1. [root@dev-server-1 master-slave]# redis-server master.conf  
  2. [root@dev-server-1 master-slave]# redis-server slave1.conf  
  3. [root@dev-server-1 master-slave]# redis-server slave2.conf 

進入master數據庫,寫入一個數據,再進入一個slave數據庫,立即便可訪問剛才寫入master數據庫的數據。如下所示 

  1. [root@dev-server-1 master-slave]# redis-cli   
  2. 127.0.0.1:6379> auth 123456  
  3. OK  
  4. 127.0.0.1:6379> set site blog.jboost.cn  
  5. OK  
  6. 127.0.0.1:6379> get site  
  7. "blog.jboost.cn"  
  8. 127.0.0.1:6379> info replication  
  9. # Replication  
  10. role:master  
  11. connected_slaves:2  
  12. slave0:ip=127.0.0.1,port=7001,state=online,offset=13364738,lag=1  
  13. slave1:ip=127.0.0.1,port=7002,state=online,offset=13364738,lag=0 
  14. ...  
  15. 127.0.0.1:6379> exit  
  16. [root@dev-server-1 master-slave]# redis-cli -p 7001  
  17. 127.0.0.1:7001> auth 123456  
  18. OK  
  19. 127.0.0.1:7001> get site  
  20. "blog.jboost.cn" 

執行info replication命令可以查看連接該數據庫的其它庫的信息,如上可看到有兩個slave連接到master

3. 主從復制的優缺點

優點:

  1.  master能自動將數據同步到slave,可以進行讀寫分離,分擔master的讀壓力
  2.  master、slave之間的同步是以非阻塞的方式進行的,同步期間,客戶端仍然可以提交查詢或更新請求

缺點:

  1.  不具備自動容錯與恢復功能,master或slave的宕機都可能導致客戶端請求失敗,需要等待機器重啟或手動切換客戶端IP才能恢復
  2.  master宕機,如果宕機前數據沒有同步完,則切換IP后會存在數據不一致的問題
  3.  難以支持在線擴容,Redis的容量受限于單機配置

Sentinel(哨兵)模式

1. 基本原理

哨兵模式基于主從復制模式,只是引入了哨兵來監控與自動處理故障。如圖

哨兵顧名思義,就是來為Redis集群站哨的,一旦發現問題能做出相應的應對處理。其功能包括

  1.  監控master、slave是否正常運行
  2.  當master出現故障時,能自動將一個slave轉換為master(大哥掛了,選一個小弟上位)
  3.  多個哨兵可以監控同一個Redis,哨兵之間也會自動監控

哨兵模式的具體工作機制:

在配置文件中通過 sentinel monitor來定位master的IP、端口,一個哨兵可以監控多個master數據庫,只需要提供多個該配置項即可。哨兵啟動后,會與要監控的master建立兩條連接:

  1.  一條連接用來訂閱master的_sentinel_:hello頻道與獲取其他監控該master的哨兵節點信息
  2.  另一條連接定期向master發送INFO等命令獲取master本身的信息

與master建立連接后,哨兵會執行三個操作:

  1.  定期(一般10s一次,當master被標記為主觀下線時,改為1s一次)向master和slave發送INFO命令
  2.  定期向master和slave的_sentinel_:hello頻道發送自己的信息
  3.  定期(1s一次)向master、slave和其他哨兵發送PING命令

發送INFO命令可以獲取當前數據庫的相關信息從而實現新節點的自動發現。所以說哨兵只需要配置master數據庫信息就可以自動發現其slave信息。獲取到slave信息后,哨兵也會與slave建立兩條連接執行監控。通過INFO命令,哨兵可以獲取主從數據庫的最新信息,并進行相應的操作,比如角色變更等。

接下來哨兵向主從數據庫的sentinel:hello頻道發送信息與同樣監控這些數據庫的哨兵共享自己的信息,發送內容為哨兵的ip端口、運行id、配置版本、master名字、master的ip端口還有master的配置版本。這些信息有以下用處:

  1.  其他哨兵可以通過該信息判斷發送者是否是新發現的哨兵,如果是的話會創建一個到該哨兵的連接用于發送PING命令。
  2.  其他哨兵通過該信息可以判斷master的版本,如果該版本高于直接記錄的版本,將會更新
  3.  當實現了自動發現slave和其他哨兵節點后,哨兵就可以通過定期發送PING命令定時監控這些數據庫和節點有沒有停止服務。

如果被PING的數據庫或者節點超時(通過 sentinel down-after-milliseconds master-name milliseconds 配置)未回復,哨兵認為其主觀下線(sdown,s就是Subjectively —— 主觀地)。如果下線的是master,哨兵會向其它哨兵發送命令詢問它們是否也認為該master主觀下線,如果達到一定數目(即配置文件中的quorum)投票,哨兵會認為該master已經客觀下線(odown,o就是Objectively —— 客觀地),并選舉領頭的哨兵節點對主從系統發起故障恢復。若沒有足夠的sentinel進程同意master下線,master的客觀下線狀態會被移除,若master重新向sentinel進程發送的PING命令返回有效回復,master的主觀下線狀態就會被移除

哨兵認為master客觀下線后,故障恢復的操作需要由選舉的領頭哨兵來執行,選舉采用Raft算法:

  1.  發現master下線的哨兵節點(我們稱他為A)向每個哨兵發送命令,要求對方選自己為領頭哨兵
  2.  如果目標哨兵節點沒有選過其他人,則會同意選舉A為領頭哨兵
  3.  如果有超過一半的哨兵同意選舉A為領頭,則A當選
  4.  如果有多個哨兵節點同時參選領頭,此時有可能存在一輪投票無競選者勝出,此時每個參選的節點等待一個隨機時間后再次發起參選請求,進行下一輪投票競選,直至選舉出領頭哨兵

選出領頭哨兵后,領頭者開始對系統進行故障恢復,從出現故障的master的從數據庫中挑選一個來當選新的master,選擇規則如下:

  1.  所有在線的slave中選擇優先級最高的,優先級可以通過slave-priority配置
  2.  如果有多個最高優先級的slave,則選取復制偏移量最大(即復制越完整)的當選
  3.  如果以上條件都一樣,選取id最小的slave

挑選出需要繼任的slave后,領頭哨兵向該數據庫發送命令使其升格為master,然后再向其他slave發送命令接受新的master,最后更新數據。將已經停止的舊的master更新為新的master的從數據庫,使其恢復服務后以slave的身份繼續運行。

2. 部署演示

本示例基于Redis 5.0.3版。

哨兵模式基于前文的主從復制模式。哨兵的配置文件為sentinel.conf,在文件中添加 

  1. sentinel monitor mymaster 127.0.0.1 6379 1 # mymaster定義一個master數據庫的名稱,后面是master的ip, port,1表示至少需要一個Sentinel進程同意才能將master判斷為失效,如果不滿足這個條件,則自動故障轉移(failover)不會執行 
  2. sentinel auth-pass mymaster 123456 # master的密碼 
  3. sentinel down-after-milliseconds mymaster 5000 # 5s未回復PING,則認為master主觀下線,默認為30s 
  4. sentinel parallel-syncs mymaster 2  # 指定在執行故障轉移時,最多可以有多少個slave實例在同步新的master實例,在slave實例較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長 
  5. sentinel failover-timeout mymaster 300000 # 如果在該時間(ms)內未能完成故障轉移操作,則認為故障轉移失敗,生產環境需要根據數據量設置該值 

 一個哨兵可以監控多個master數據庫,只需按上述配置添加多套

分別以26379,36379,46379端口啟動三個sentinel 

  1. [root@dev-server-1 sentinel]# redis-server sentinel1.conf --sentinel  
  2. [root@dev-server-1 sentinel]# redis-server sentinel2.conf --sentinel 
  3. [root@dev-server-1 sentinel]# redis-server sentinel3.conf --sentinel 

也可以使用redis-sentinel sentinel1.conf 命令啟動。此時集群包含一個master、兩個slave、三個sentinel,如圖,

我們來模擬master掛掉的場景,執行 kill -9 3017 將master進程干掉,進入slave中執行 info replication查看, 

  1. [root@dev-server-1 sentinel]# redis-cli -p 7001  
  2. 127.0.0.1:7001> auth 123456  
  3. OK  
  4. 127.0.0.1:7001> info replication  
  5. # Replication  
  6. role:slave  
  7. master_host:127.0.0.1  
  8. master_port:7002  
  9. master_link_status:up  
  10. master_last_io_seconds_ago:1  
  11. master_sync_in_progress:0  
  12. # 省略  
  13. 127.0.0.1:7001> exit  
  14. [root@dev-server-1 sentinel]# redis-cli -p 7002  
  15. 127.0.0.1:7002> auth 123456  
  16. OK  
  17. 127.0.0.1:7002> info replication  
  18. # Replication  
  19. role:master  
  20. connected_slaves:1  
  21. slave0:ip=127.0.0.1,port=7001,state=online,offset=13642721,lag=1  
  22. # 省略 

可以看到slave 7002已經成功上位晉升為master(role:master),接收一個slave 7001的連接。此時查看slave2.conf配置文件,發現replicaof的配置已經被移除了,slave1.conf的配置文件里replicaof 127.0.0.1 6379 被改為 replicaof 127.0.0.1 7002。重新啟動master,也可以看到master.conf配置文件中添加了replicaof 127.0.0.1 7002的配置項,可見大哥(master)下位后,再出來混就只能當當小弟(slave)了,三十年河東三十年河西。

3. 哨兵模式的優缺點

優點:

  1.  哨兵模式基于主從復制模式,所以主從復制模式有的優點,哨兵模式也有
  2.  哨兵模式下,master掛掉可以自動進行切換,系統可用性更高

缺點:

  1.  同樣也繼承了主從模式難以在線擴容的缺點,Redis的容量受限于單機配置
  2.  需要額外的資源來啟動sentinel進程,實現相對復雜一點,同時slave節點作為備份節點不提供服務

Cluster模式

1. 基本原理

哨兵模式解決了主從復制不能自動故障轉移,達不到高可用的問題,但還是存在難以在線擴容,Redis容量受限于單機配置的問題。Cluster模式實現了Redis的分布式存儲,即每臺節點存儲不同的內容,來解決在線擴容的問題。如圖

 

Cluster采用無中心結構,它的特點如下:

  1.  所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬
  2.  節點的fail是通過集群中超過半數的節點檢測失效時才生效
  3.  客戶端與redis節點直連,不需要中間代理層.客戶端不需要連接集群所有節點,連接集群中任何一個可用節點即可

Cluster模式的具體工作機制:

      1.  在Redis的每個節點上,都有一個插槽(slot),取值范圍為0-16383

      2.  當我們存取key的時候,Redis會根據CRC16的算法得出一個結果,然后把結果對16384求余數,這樣每個key都會對應一個編號在0-16383之間的哈希槽,通過這個值,去找到對應的插槽所對應的節點,然后直接自動跳轉到這個對應的節點上進行存取操作

      3.  為了保證高可用,Cluster模式也引入主從復制模式,一個主節點對應一個或者多個從節點,當主節點宕機的時候,就會啟用從節點

      4.  當其它主節點ping一個主節點A時,如果半數以上的主節點與A通信超時,那么認為主節點A宕機了。如果主節點A和它的從節點都宕機了,那么該集群就無法再提供服務了

Cluster模式集群節點最小配置6個節點(3主3從,因為需要半數以上),其中主節點提供讀寫操作,從節點作為備用節點,不提供請求,只作為故障轉移使用。

2. 部署演示

本示例基于Redis 5.0.3版。

Cluster模式的部署比較簡單,首先在redis.conf中 

  1. port 7100 # 本示例6個節點端口分別為7100,7200,7300,7400,7500,7600   
  2. daemonize yes # r后臺運行   
  3. pidfile /var/run/redis_7100.pid # pidfile文件對應7100,7200,7300,7400,7500,7600   
  4. cluster-enabled yes # 開啟集群模式   
  5. masterauth passw0rd # 如果設置了密碼,需要指定master密碼  
  6. cluster-config-file nodes_7100.conf # 集群的配置文件,同樣對應7100,7200等六個節點  
  7. cluster-node-timeout 15000 # 請求超時 默認15秒,可自行設置 

分別以端口7100,7200,7300,7400,7500,7600 啟動六個實例(如果是每個服務器一個實例則配置可一樣) 

  1. [root@dev-server-1 cluster]# redis-server redis_7100.conf  
  2. [root@dev-server-1 cluster]# redis-server redis_7200.conf  
  3. ... 

然后通過命令將這個6個實例組成一個3主節點3從節點的集群, 

  1. redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7100 127.0.0.1:7200 127.0.0.1:7300 127.0.0.1:7400 127.0.0.1:7500 127.0.0.1:7600 -a passw0rd 

執行結果如圖

可以看到 7100, 7200, 7300 作為3個主節點,分配的slot分別為 0-5460, 5461-10922, 10923-16383, 7600作為7100的slave, 7500作為7300的slave,7400作為7200的slave。

我們連接7100設置一個值 

  1. [root@dev-server-1 cluster]# redis-cli -p 7100 -c -a passw0rd  
  2. Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.  
  3. 127.0.0.1:7100> set site blog.jboost.cn  
  4. -> Redirected to slot [9421] located at 127.0.0.1:7200  
  5. OK  
  6. 127.0.0.1:7200> get site  
  7. "blog.jboost.cn"  
  8. 127.0.0.1:7200> 

注意添加 -c 參數表示以集群模式,否則報 (error) MOVED 9421 127.0.0.1:7200 錯誤, 以 -a 參數指定密碼,否則報(error) NOAUTH Authentication required錯誤。

從上面命令看到key為site算出的slot為9421,落在7200節點上,所以有Redirected to slot [9421] located at 127.0.0.1:7200,集群會自動進行跳轉。因此客戶端可以連接任何一個節點來進行數據的存取。

通過cluster nodes可查看集群的節點信息 

  1. 127.0.0.1:7200> cluster nodes  
  2. eb28aaf090ed1b6b05033335e3d90a202b422d6c 127.0.0.1:7500@17500 slave c1047de2a1b5d5fa4666d554376ca8960895a955 0 1584165266071 5 connected  
  3. 4cc0463878ae00e5dcf0b36c4345182e021932bc 127.0.0.1:7400@17400 slave 5544aa5ff20f14c4c3665476de6e537d76316b4a 0 1584165267074 4 connected  
  4. dbbb6420d64db22f35a9b6fa460b0878c172a2fb 127.0.0.1:7100@17100 master - 0 1584165266000 1 connected 0-5460  
  5. d4b434f5829e73e7e779147e905eea6247ffa5a2 127.0.0.1:7600@17600 slave dbbb6420d64db22f35a9b6fa460b0878c172a2fb 0 1584165265000 6 connected  
  6. 5544aa5ff20f14c4c3665476de6e537d76316b4a 127.0.0.1:7200@17200 myself,master - 0 1584165267000 2 connected 5461-10922  
  7. c1047de2a1b5d5fa4666d554376ca8960895a955 127.0.0.1:7300@17300 master - 0 1584165268076 3 connected 10923-16383 

我們將7200通過 kill -9 pid殺死進程來驗證集群的高可用,重新進入集群執行cluster nodes可以看到7200 fail了,但是7400成了master,重新啟動7200,可以看到此時7200已經變成了slave。

3. Cluster模式的優缺點

優點:

      1.  無中心架構,數據按照slot分布在多個節點。

      2.  集群中的每個節點都是平等的關系,每個節點都保存各自的數據和整個集群的狀態。每個節點都和其他所有節點連接,而且這些連接保持活躍,這樣就保證了我們只需要連接集群中的任意一個節點,就可以獲取到其他節點的數據。

      3.  可線性擴展到1000多個節點,節點可動態添加或刪除

      4.  能夠實現自動故障轉移,節點之間通過gossip協議交換狀態信息,用投票機制完成slave到master的角色轉換

缺點:

  1.  客戶端實現復雜,驅動要求實現Smart Client,緩存slots mapping信息并及時更新,提高了開發難度。目前僅JedisCluster相對成熟,異常處理還不完善,比如常見的“max redirect exception”
  2.  節點會因為某些原因發生阻塞(阻塞時間大于 cluster-node-timeout)被判斷下線,這種failover是沒有必要的
  3.  數據通過異步復制,不保證數據的強一致性
  4.  slave充當“冷備”,不能緩解讀壓力
  5.  批量操作限制,目前只支持具有相同slot值的key執行批量操作,對mset、mget、sunion等操作支持不友好
  6.  key事務操作支持有線,只支持多key在同一節點的事務操作,多key分布不同節點時無法使用事務功能
  7.   不支持多數據庫空間,單機redis可以支持16個db,集群模式下只能使用一個,即db 0

Redis Cluster模式不建議使用pipeline和multi-keys操作,減少max redirect產生的場景。

總結

本文介紹了Redis集群方案的三種模式,其中主從復制模式能實現讀寫分離,但是不能自動故障轉移;哨兵模式基于主從復制模式,能實現自動故障轉移,達到高可用,但與主從復制模式一樣,不能在線擴容,容量受限于單機的配置;Cluster模式通過無中心化架構,實現分布式存儲,可進行線性擴展,也能高可用,但對于像批量操作、事務操作等的支持性不夠好。三種模式各有優缺點,可根據實際場景進行選擇。 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2022-03-24 08:51:48

Redis互聯網NoSQL

2020-06-08 18:02:50

Redis集群雪崩

2023-12-04 16:24:23

2023-11-01 11:06:18

2024-04-12 12:19:08

語言模型AI

2020-09-04 06:35:28

Redis復制哨兵

2024-11-05 14:00:56

2020-04-21 10:37:41

Apply數據參數

2021-03-22 10:05:59

netstat命令Linux

2023-09-08 08:20:46

ThreadLoca多線程工具

2023-09-15 12:00:01

API應用程序接口

2022-03-01 20:41:00

機器學習特征人工智能

2025-04-11 11:00:00

存儲技術DASSAN

2022-05-05 16:47:24

Docker網絡空間容器

2024-08-05 00:05:00

操作系統內存管理

2023-07-25 09:53:00

LGACPU數字

2020-05-15 16:37:13

PowerBI數據分析

2023-07-04 08:56:07

指針類型Golang

2023-04-03 15:04:00

RPCPHP語言

2023-08-24 16:50:45

點贊
收藏

51CTO技術棧公眾號

国产精品拍拍拍| 蜜桃视频成人| 日本一区二区网站| 西瓜成人精品人成网站| 欧美主播一区二区三区美女| 黄色免费高清视频| 午夜性色福利视频| 麻豆精品视频在线观看视频| 欧美高清无遮挡| 日韩中文字幕有码| 亚洲日本视频在线| 欧美亚洲综合在线| 欧美这里只有精品| 自拍视频在线播放| 成人激情小说乱人伦| 国产精品久久色| 日韩乱码一区二区| 99久久.com| 亚洲欧美色图片| 亚洲麻豆一区二区三区| 日本一区二区三区中文字幕| 亚洲成人av一区| 亚洲欧美日韩国产成人综合一二三区| 日韩一区免费视频| 国产一区视频网站| 国产精品视频播放| 亚洲AV无码成人精品区东京热| 亚洲欧美综合久久久| 亚洲人成人99网站| 日本三级日本三级日本三级极| 青青在线精品| 在线观看亚洲成人| 日日摸日日碰夜夜爽av| 亚洲男同gay网站| 国产精品嫩草影院av蜜臀| 精品一区二区三区国产| 成人黄色在线观看视频| 激情深爱一区二区| 国产精品丝袜一区二区三区| 色狠狠色狠狠综合| 久久精品夜夜夜夜夜久久| 91tv精品福利国产在线观看| 亚洲一区二区精品| 一级特黄a大片免费| 亚洲精品一区二区三区中文字幕| 欧美片在线播放| 婷婷丁香激情网| 亚洲精品一区| 色妹子一区二区| 国产av无码专区亚洲精品| 国产美女精品写真福利视频| 亚洲午夜久久久久久久久久久| 黄色污污在线观看| 成人av黄色| 亚洲人成在线观看一区二区| 在线无限看免费粉色视频| 欧美成人三区| 亚洲蜜臀av乱码久久精品蜜桃| 自拍偷拍视频在线| 在线黄色网页| 亚洲国产精品自拍| 男人插女人视频在线观看| 黄色羞羞视频在线观看| 性久久久久久久久| 黄色动漫在线免费看| 亚洲人体视频| 欧美视频第二页| 日韩在线一区视频| 欧美视频二区欧美影视| 精品国产亚洲一区二区三区在线观看| 波多野结衣办公室双飞| 女同另类激情重口| 亚洲天堂开心观看| 熟女少妇a性色生活片毛片| 亚洲人metart人体| 久久乐国产精品| 国产性生活视频| 久久99精品久久久久| 99se婷婷在线视频观看| 日韩在线视频观看免费| 国产亚洲成年网址在线观看| 视频一区国产精品| 二区三区在线观看| 欧美日韩国产在线播放| 久草福利视频在线| 亚洲国产精品免费视频| 日韩精品一区二区三区第95| 久久久精品成人| 欧美日韩精品| 国产精品扒开腿做爽爽爽的视频| 国产一区二区麻豆| yourporn久久国产精品| 亚洲精品视频一二三| 天天色天天射天天综合网| 狠狠色狠狠色综合日日小说| 污污的视频免费| 国产精品jk白丝蜜臀av小说| 国产一区二区三区欧美| 免费在线观看黄色av| 久久久水蜜桃av免费网站| 成人字幕网zmw| 青青草免费观看免费视频在线| 中文字幕一区二区三区乱码在线| 国产96在线 | 亚洲| 香蕉久久一区| 亚洲美女视频网| 免费无遮挡无码永久在线观看视频| 首页国产欧美久久| 国产欧美一区二区视频| 免费看美女视频在线网站| 精品久久久一区二区| 午夜诱惑痒痒网| 欧美日韩国产一区二区三区不卡 | 亚洲欧美日本韩国| av7777777| 亚洲成人五区| 久久中文久久字幕| 亚洲高清视频免费观看| 成人美女在线视频| 免费成人深夜夜行网站视频| 偷拍视频一区二区三区| 亚洲第一区在线| 日本精品在线免费观看| 日韩精品视频网| 久久99精品国产一区二区三区| 18av在线播放| 91 com成人网| 欧美另类69xxxx| 日韩精品电影一区亚洲| 免费日韩av电影| 激情国产在线| 亚洲的天堂在线中文字幕| 强制高潮抽搐sm调教高h| 爽好多水快深点欧美视频| 久久精品国产精品国产精品污 | 亚洲色图欧美视频| 亚洲影院免费观看| 国产老头和老头xxxx×| 一级毛片免费高清中文字幕久久网| 国产精品久久久久久久久免费 | 国产精品久久久久av蜜臀| 久久亚洲精品一区二区| 一级黄色片视频| 国产精品乱子久久久久| 日本中文字幕精品—区二区| 成人在线免费观看网站| 国产精品女主播视频| 高清美女视频一区| 精品视频色一区| 国产精品www爽爽爽| 日本va欧美va欧美va精品| 日本高清一区| 日韩制服一区| 日韩视频在线观看免费| 91超薄丝袜肉丝一区二区| 综合电影一区二区三区| 亚洲黄色片免费看| 欧美成人久久| 国产伦精品一区二区三区在线 | 国产精品久久国产愉拍| 久久66热这里只有精品| 日韩电影av| 色小说视频一区| 国产精品久久婷婷| 亚洲午夜在线视频| 亚洲国产第一区| 久久资源在线| 在线观看福利一区| **爰片久久毛片| 91干在线观看| 中文字幕在线观看日本| 日韩亚洲欧美中文三级| 国产 欧美 日韩 在线| 久久久影视传媒| 九色porny自拍| 黑人一区二区三区四区五区| 精品国产一区二区三区日日嗨| 欧美特大特白屁股xxxx| www日韩中文字幕在线看| 亚洲av无码国产精品久久不卡| 午夜精品久久久久久久99樱桃| 成人免费网站黄| 极品少妇xxxx偷拍精品少妇| 国产欧美日韩网站| 成人写真视频| 国产亚洲精品自在久久| 素人一区二区三区| 欧美多人爱爱视频网站| 黄色国产在线| 欧美成人猛片aaaaaaa| 亚洲综合图片网| 夜夜嗨av一区二区三区| 最近中文字幕在线mv视频在线| 国产精品一区二区三区99| 2022亚洲天堂| 欧美三区美女| 亚洲高清视频一区二区| 97人人澡人人爽91综合色| 国产精品视频久久久| 男人添女人下部高潮视频在线观看| 亚洲欧美中文日韩v在线观看| 国产男女猛烈无遮挡| 一本色道久久综合亚洲91| 久久久久亚洲av片无码| 久久午夜老司机| 毛茸茸free性熟hd| 国内精品写真在线观看| 欧美一级片中文字幕| 国产专区一区| 7777在线视频| 精品一区不卡| 就去色蜜桃综合| jizz性欧美23| 91网免费观看| 四虎国产精品成人免费影视| 欧美自拍视频在线观看| 国产精品69xx| 九九热视频这里只有精品| 97人人在线| 国产亚洲xxx| 日韩欧美在线观看一区二区| 日韩欧美aaaaaa| 国产乱码久久久| 欧美三级韩国三级日本三斤| 天天操夜夜操视频| 五月天丁香久久| 久久精品视频国产| 亚洲狠狠爱一区二区三区| 欧美一区免费观看| 中文字幕一区二区三区四区| 极品尤物一区二区| 中文av字幕一区| 娇妻被老王脔到高潮失禁视频| 99久久伊人网影院| 玖玖爱在线精品视频| 成人污污视频在线观看| 黑人巨大猛交丰满少妇| 国产一区二区精品在线观看| 亚洲视频一二三四| 精品一区二区在线观看| 999这里有精品| 久久福利视频一区二区| 免费成年人高清视频| 狠狠色丁香九九婷婷综合五月| 日本高清久久久| 韩日欧美一区二区三区| 加勒比av中文字幕| 国产一区二区三区黄视频| 日本77777| 国产精品影视在线| 成人做爰69片免费| 不卡视频一二三四| 懂色av粉嫩av蜜乳av| 久久综合狠狠综合久久激情| 国产 中文 字幕 日韩 在线| 久久久蜜桃精品| 鲁丝一区二区三区| 国产精品超碰97尤物18| 加勒比婷婷色综合久久| 亚洲一区在线播放| 欧美成人aaaaⅴ片在线看| 欧美日韩中国免费专区在线看| 日本免费在线观看视频| 欧美在线视频你懂得| 91成人在线免费| 精品99一区二区| 嫩草在线播放| 视频在线一区二区| 污污网站在线观看| 欧美亚洲国产视频| 色猫猫成人app| 亚洲综合自拍一区| 欧美色图五月天| 先锋影音欧美| 韩国久久久久| 亚洲性生活网站| 国产乱子伦视频一区二区三区 | 国产精品欧美久久久久天天影视| 日韩精品一区二区三区视频 | 亚洲视频 欧洲视频| 九九精品在线观看视频| 日韩欧美亚洲国产一区| 一区二区三区播放| 亚洲第一视频网| 91伦理视频在线观看| 欧美激情精品久久久久久免费印度 | 天堂91在线| 久久精品国产亚洲一区二区| 黄色成人在线网| 国产精品免费看久久久香蕉| 亚洲国产aⅴ精品一区二区| 日本高清久久一区二区三区| 欧美日韩亚洲一区三区 | 久久黄色小视频| 欧美性色xo影院| av免费在线不卡| 国产一区二区黄| 高潮在线视频| 91久久精品久久国产性色也91| 西瓜成人精品人成网站| 久久免费一级片| 久久中文字幕一区二区三区| 欧美成人精品一区二区综合免费| 欧美国产1区2区| 国产精品久久久久久久妇| 91精品国产一区二区三区香蕉| 日韩电影在线观看完整版| 欧美精品一区二区免费| 国产激情欧美| 日本电影一区二区三区| 99视频精品免费观看| 日韩av福利在线观看| 欧美经典一区二区| 久久久久久久久影院| 日韩欧美综合在线| 免费日本一区二区三区视频| 日韩av色在线| 少妇高潮一区二区三区| av 日韩 人妻 黑人 综合 无码| 蜜桃91丨九色丨蝌蚪91桃色| 女同毛片一区二区三区| 亚洲高清免费视频| www.久久色| 久久av在线看| 在线日韩三级| 亚洲一卡二卡三卡四卡无卡网站在线看| 99热免费精品在线观看| 日本一区二区在线观看视频| 亚洲精品成人天堂一二三| 亚洲网站在线免费观看| 伊人一区二区三区久久精品| 日韩激情电影| 久久综合福利| 亚洲欧美日韩一区在线观看| 污片免费在线观看| 午夜欧美一区二区三区在线播放| 性生活黄色大片| 久久成年人免费电影| av成人在线网站| 亚洲一二三区在线| 久草在线在线精品观看| 久草手机视频在线观看| 91精品国产欧美一区二区成人| 秋霞影院午夜丰满少妇在线视频| 国产精品免费电影| 欧美高清视频手机在在线| 亚洲综合av在线播放| 综合久久久久久| www.我爱av| 久久久噜噜噜久久中文字免| 国产成人av毛片| av之家在线观看| www久久精品| 日韩av免费播放| 日韩天堂在线视频| 久久9999免费视频| 国产aaa免费视频| 成人app下载| 欧美一区二区三区网站| 伊人av综合网| 亚洲一区二区av| 久久福利一区二区| av亚洲精华国产精华精华| 久久夜色精品国产噜噜亚洲av| 国产亚洲精品久久久优势| 免费视频成人| 少妇大叫太大太粗太爽了a片小说| 成人黄色综合网站| 国产寡妇亲子伦一区二区三区四区| 国产亚洲视频在线| 精品国产不卡一区二区| av无码久久久久久不卡网站| www久久久久| 96日本xxxxxⅹxxx17| 欧美激情一二三| 精品久久中文| 在线观看你懂的视频| 欧美性xxxxxxxxx| 精品自拍一区| 久久99精品久久久久久秒播放器| 日日摸夜夜添夜夜添国产精品| 亚洲怡红院在线观看| 亚洲成人xxx| 国产综合色在线观看| 国产一级片91| 久久久精品日韩欧美| 国产高清在线观看视频| 欧美一级淫片videoshd| 婷婷亚洲五月| 李宗瑞91在线正在播放| 日韩精品在线一区二区| 影视一区二区三区| 少妇一晚三次一区二区三区| 久久精品男人的天堂| www.欧美国产| 国产精品自拍偷拍| 国产欧美一级| 丁香花五月激情| 国产亚洲欧美日韩一区二区| 大陆精大陆国产国语精品|