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

大家所推崇的Redis分布式鎖真的就萬無一失嗎?

存儲(chǔ) 存儲(chǔ)軟件 分布式 Redis
在單實(shí)例JVM中,常見的處理并發(fā)問題的方法有很多,比如synchronized關(guān)鍵字進(jìn)行訪問控制、volatile關(guān)鍵字、ReentrantLock等常用方法。但是在分布式環(huán)境中,上述方法卻不能在跨JVM場(chǎng)景中用于處理并發(fā)問題,當(dāng)業(yè)務(wù)場(chǎng)景需要對(duì)分布式環(huán)境中的并發(fā)問題進(jìn)行處理時(shí),需要使用分布式鎖來實(shí)現(xiàn)。

 在單實(shí)例JVM中,常見的處理并發(fā)問題的方法有很多,比如synchronized關(guān)鍵字進(jìn)行訪問控制、volatile關(guān)鍵字、ReentrantLock等常用方法。但是在分布式環(huán)境中,上述方法卻不能在跨JVM場(chǎng)景中用于處理并發(fā)問題,當(dāng)業(yè)務(wù)場(chǎng)景需要對(duì)分布式環(huán)境中的并發(fā)問題進(jìn)行處理時(shí),需要使用分布式鎖來實(shí)現(xiàn)。

[[268881]]

分布式鎖,是指在分布式的部署環(huán)境下,通過鎖機(jī)制來讓多客戶端互斥的對(duì)共享資源進(jìn)行訪問。

目前比較常見的分布式鎖實(shí)現(xiàn)方案有以下幾種:

  • 基于數(shù)據(jù)庫,如MySQL
  • 基于緩存,如Redis
  • 基于Zookeeper、etcd等。

這里介紹一下如何使用緩存(Redis)實(shí)現(xiàn)分布式鎖。

使用Redis實(shí)現(xiàn)分布式鎖最簡(jiǎn)單的方案是使用命令SETNX。SETNX(SET if Not eXist)的使用方式為:SETNX key value,只在鍵key不存在的情況下,將鍵key的值設(shè)置為value,若鍵key存在,則SETNX不做任何動(dòng)作。SETNX在設(shè)置成功時(shí)返回,設(shè)置失敗時(shí)返回0。當(dāng)要獲取鎖時(shí),直接使用SETNX獲取鎖,當(dāng)要釋放鎖時(shí),使用DEL命令刪除掉對(duì)應(yīng)的鍵key即可。

上面這種方案有一個(gè)致命問題,就是某個(gè)線程在獲取鎖之后由于某些異常因素(比如宕機(jī))而不能正常的執(zhí)行解鎖操作,那么這個(gè)鎖就永遠(yuǎn)釋放不掉了。為此,我們可以為這個(gè)鎖加上一個(gè)超時(shí)時(shí)間。***時(shí)間我們會(huì)聯(lián)想到Redis的EXPIRE命令(EXPIRE key seconds)。但是這里我們不能使用EXPIRE來實(shí)現(xiàn)分布式鎖,因?yàn)樗cSETNX一起是兩個(gè)操作,在這兩個(gè)操作之間可能會(huì)發(fā)生異常,從而還是達(dá)不到預(yù)期的結(jié)果,示例如下:

  1. // STEP 1 
  2. SETNX key value 
  3. // 若在這里(STEP1和STEP2之間)程序突然崩潰,則無法設(shè)置過期時(shí)間,將有可能無法釋放鎖 
  4. // STEP 2 
  5. EXPIRE key expireTime 

對(duì)此,正確的姿勢(shì)應(yīng)該是使用“SET key value [EX seconds] [PX milliseconds] [NX|XX]”這個(gè)命令。

從 Redis 2.6.12 版本開始, SET 命令的行為可以通過一系列參數(shù)來修改:

  • EX seconds : 將鍵的過期時(shí)間設(shè)置為 seconds 秒。 執(zhí)行 SET key value EX seconds 的效果等同于執(zhí)行 SETEX key seconds value 。
  • PX milliseconds : 將鍵的過期時(shí)間設(shè)置為 milliseconds 毫秒。 執(zhí)行 SET key value PX milliseconds 的效果等同于執(zhí)行 PSETEX key milliseconds value 。
  • NX : 只在鍵不存在時(shí), 才對(duì)鍵進(jìn)行設(shè)置操作。 執(zhí)行 SET key value NX 的效果等同于執(zhí)行 SETNX key value 。
  • XX : 只在鍵已經(jīng)存在時(shí), 才對(duì)鍵進(jìn)行設(shè)置操作。

舉例,我們需要?jiǎng)?chuàng)建一個(gè)分布式鎖,并且設(shè)置過期時(shí)間為10s,那么可以執(zhí)行以下命令:

  1. SET lockKey lockValue EX 10 NX 
  2. 或者 
  3. SET lockKey lockValue PX 10000 NX 

注意EX和PX不能同時(shí)使用,否則會(huì)報(bào)錯(cuò):ERR syntax error。

解鎖的時(shí)候還是使用DEL命令來解鎖。

修改之后的方案看上去很***,但實(shí)際上還是會(huì)有問題。試想一下,某線程A獲取了鎖并且設(shè)置了過期時(shí)間為10s,然后在執(zhí)行業(yè)務(wù)邏輯的時(shí)候耗費(fèi)了15s,此時(shí)線程A獲取的鎖早已被Redis的過期機(jī)制自動(dòng)釋放了。在線程A獲取鎖并經(jīng)過10s之后,改鎖可能已經(jīng)被其它線程獲取到了。當(dāng)線程A執(zhí)行完業(yè)務(wù)邏輯準(zhǔn)備解鎖(DEL key)的時(shí)候,有可能刪除掉的是其它線程已經(jīng)獲取到的鎖。

所以***的方式是在解鎖時(shí)判斷鎖是否是自己的。我們可以在設(shè)置key的時(shí)候?qū)alue設(shè)置為一個(gè)唯一值uniqueValue(可以是隨機(jī)值、UUID、或者機(jī)器號(hào)+線程號(hào)的組合、簽名等)。當(dāng)解鎖時(shí),也就是刪除key的時(shí)候先判斷一下key對(duì)應(yīng)的value是否等于先前設(shè)置的值,如果相等才能刪除key,偽代碼示例如下:

  1. if uniqueKey == GET(key) { 
  2.     DEL key 

這里我們一眼就可以看出問題來:GET和DEL是兩個(gè)分開的操作,在GET執(zhí)行之后且在DEL執(zhí)行之前的間隙是可能會(huì)發(fā)生異常的。如果我們只要保證解鎖的代碼是原子性的就能解決問題了。這里我們引入了一種新的方式,就是Lua腳本,示例如下:

  1. if redis.call("get",KEYS[1]) == ARGV[1] then 
  2.  return redis.call("del",KEYS[1]) 
  3. else 
  4.  return 0 
  5. end 

其中ARGV[1]表示設(shè)置key時(shí)指定的唯一值。

由于Lua腳本的原子性,在Redis執(zhí)行該腳本的過程中,其他客戶端的命令都需要等待該Lua腳本執(zhí)行完才能執(zhí)行。

下面我們使用Jedis來演示一下獲取鎖和解鎖的實(shí)現(xiàn),具體如下:

  1. public boolean lock(String lockKey, String uniqueValue, int seconds){ 
  2.  SetParams params = new SetParams(); 
  3.  params.nx().ex(seconds); 
  4.  String result = jedis.set(lockKey, uniqueValue, params); 
  5.  if ("OK".equals(result)) { 
  6.  return true
  7.  } 
  8.  return false
  9. public boolean unlock(String lockKey, String uniqueValue){ 
  10.  String script = "if redis.call('get', KEYS[1]) == ARGV[1] " + 
  11.  "then return redis.call('del', KEYS[1]) else return 0 end"
  12.  Object result = jedis.eval(script,  
  13.  Collections.singletonList(lockKey),  
  14.  Collections.singletonList(uniqueValue)); 
  15.  if (result.equals(1)) { 
  16.  return true
  17.  } 
  18.  return false

如此就萬無一失了嗎?顯然不是!

表面來看,這個(gè)方法似乎很管用,但是這里存在一個(gè)問題:在我們的系統(tǒng)架構(gòu)里存在一個(gè)單點(diǎn)故障,如果Redis的master節(jié)點(diǎn)宕機(jī)了怎么辦呢?有人可能會(huì)說:加一個(gè)slave節(jié)點(diǎn)!在master宕機(jī)時(shí)用slave就行了!

但是其實(shí)這個(gè)方案明顯是不可行的,因?yàn)镽edis的復(fù)制是異步的。舉例來說:

  1. 線程A在master節(jié)點(diǎn)拿到了鎖。
  2. master節(jié)點(diǎn)在把A創(chuàng)建的key寫入slave之前宕機(jī)了。
  3. slave變成了master節(jié)點(diǎn)。
  4. 線程B也得到了和A還持有的相同的鎖。(因?yàn)樵瓉淼膕lave里面還沒有A持有鎖的信息)

當(dāng)然,在某些場(chǎng)景下這個(gè)方案沒有什么問題,比如業(yè)務(wù)模型允許同時(shí)持有鎖的情況,那么使用這種方案也未嘗不可。

舉例說明,某個(gè)服務(wù)有2個(gè)服務(wù)實(shí)例:A和B,初始情況下A獲取了鎖然后對(duì)資源進(jìn)行操作(可以假設(shè)這個(gè)操作很耗費(fèi)資源),B沒有獲取到鎖而不執(zhí)行任何操作,此時(shí)B可以看做是A的熱備。當(dāng)A出現(xiàn)異常時(shí),B可以“轉(zhuǎn)正”。當(dāng)鎖出現(xiàn)異常時(shí),比如Redis master宕機(jī),那么B可能會(huì)同時(shí)持有鎖并且對(duì)資源進(jìn)行操作,如果操作的結(jié)果是冪等的(或者其它情況),那么也可以使用這種方案。這里引入分布式鎖可以讓服務(wù)在正常情況下避免重復(fù)計(jì)算而造成資源的浪費(fèi)。

為了應(yīng)對(duì)這種情況,antriez提出了Redlock算法。Redlock算法的主要思想是:假設(shè)我們有N個(gè)Redis master節(jié)點(diǎn),這些節(jié)點(diǎn)都是完全獨(dú)立的,我們可以運(yùn)用前面的方案來對(duì)前面單個(gè)的Redis master節(jié)點(diǎn)來獲取鎖和解鎖,如果我們總體上能在合理的范圍內(nèi)或者N/2+1個(gè)鎖,那么我們就可以認(rèn)為成功獲得了鎖,反之則沒有獲取鎖(可類比Quorum模型)。雖然Redlock的原理很好理解,但是其內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)很是復(fù)雜,要考慮很多因素

Redlock算法也并非是“銀彈”,他除了條件有點(diǎn)苛刻外,其算法本身也被質(zhì)疑。關(guān)于Redis分布式鎖的安全性問題,在分布式系統(tǒng)專家Martin Kleppmann和Redis的作者antirez之間就發(fā)生過一場(chǎng)爭(zhēng)論。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-01-11 18:36:06

Redis分布式鎖數(shù)據(jù)庫

2013-02-01 10:48:52

2013-01-06 10:57:03

2017-10-26 14:15:32

測(cè)試工具設(shè)計(jì)開發(fā)

2013-08-12 10:37:14

云服務(wù)云計(jì)算

2011-07-19 21:20:01

2021-06-22 06:13:05

私有云混合多云網(wǎng)絡(luò)架構(gòu)

2020-10-11 20:41:14

消息隊(duì)列數(shù)據(jù)技術(shù)

2016-11-28 15:54:17

聯(lián)想網(wǎng)盤

2020-02-07 10:14:07

程序員設(shè)計(jì)人生第一份工作

2022-02-07 19:28:02

LoRa廣域網(wǎng)5G

2019-06-19 15:40:06

分布式鎖RedisJava

2025-06-18 16:40:06

網(wǎng)絡(luò)安全數(shù)據(jù)安全備份

2021-07-26 11:09:46

Redis分布式技術(shù)

2021-08-31 15:57:32

勒索軟件零信任網(wǎng)絡(luò)罪犯

2020-07-30 09:35:09

Redis分布式鎖數(shù)據(jù)庫

2022-06-16 08:01:24

redis分布式鎖

2023-08-21 19:10:34

Redis分布式

2022-01-06 10:58:07

Redis數(shù)據(jù)分布式鎖

2019-02-26 09:51:52

分布式鎖RedisZookeeper
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

狠狠入ady亚洲精品| 亚州精品国产| 97精品久久久午夜一区二区三区| 2019中文字幕免费视频| 国产精品无码电影| 制服丝袜专区在线| 中文字幕在线观看一区二区| 成人久久18免费网站图片| 国产免费无码一区二区视频| 国产精品久久久网站| 色婷婷精品大视频在线蜜桃视频| 欧美一级日本a级v片| 一级特黄aaa大片| 在线视频观看日韩| 一区二区在线视频| 91精品人妻一区二区三区四区| 国产美女精品写真福利视频| 久久久99久久| 91网免费观看| 国产偷人爽久久久久久老妇app| 欧美国产一级| 亚洲黄色www| 精品久久久99| 少妇视频在线观看| 亚洲乱码中文字幕| 日韩av电影在线观看| 国内老熟妇对白xxxxhd| 久久国产毛片| 国内精品小视频| 欧美日韩国产一二三区| 日本欧美韩国国产| 日韩久久精品一区| 第一区免费在线观看| 免费看男女www网站入口在线| 国产精品久久久久天堂| 精品国产乱码久久久久久久软件| 国产精品久久久久久久久久久久久久久久久久 | 亚洲国产视频直播| 午夜啪啪免费视频| jizzjizz在线观看| 91欧美激情一区二区三区成人| 成人免费看吃奶视频网站| 黄色一级视频免费看| 激情综合自拍| 欧美成人午夜激情| 日本精品人妻无码77777| 国产一区二区三区四区二区| 亚洲精品99久久久久| 日本wwwwwww| 亚洲视频一起| 欧美va日韩va| aaa黄色大片| 久久精品一级| 欧美一区在线视频| 在线成人免费av| 日韩综合久久| 欧美三级三级三级爽爽爽| 毛片一区二区三区四区| 少妇视频一区| 欧美日韩一区二区在线| 欧洲黄色一级视频| 精品捆绑调教一区二区三区| 午夜成人免费视频| 97超碰青青草| 蜜桃成人精品| 欧美少妇xxx| 日韩中文字幕a| 青青在线精品| 欧美一区二区三区视频免费| 污污的视频免费| 久久国产精品美女| 精品国产sm最大网站免费看| 国产精品扒开腿做爽爽爽a片唱戏| 综合伊人久久| 日韩高清有码在线| 亚洲第一香蕉网| 成人a'v在线播放| 不卡av在线播放| 久久精品国产亚洲AV无码男同| 激情欧美一区二区三区| 韩日欧美一区二区| 精品免费囯产一区二区三区| 久久午夜av| 国产日韩综合一区二区性色av| 91亚洲国产成人精品一区| 国产自产2019最新不卡| 粉嫩高清一区二区三区精品视频 | 极品美女一区| 欧美伊人久久大香线蕉综合69 | 国产一区二区视频在线| 99久久伊人精品影院| 亚洲国产精彩视频| 2020国产精品| 精品一区二区成人免费视频| 草美女在线观看| 色婷婷av久久久久久久| 潘金莲激情呻吟欲求不满视频| 亚洲91网站| 亚洲人成在线观看| 欧美成人aaa片一区国产精品| 亚洲高清在线| 国产精品a久久久久久| 国产一区二区在线不卡| 99视频在线观看一区三区| 天堂av一区二区| jizz一区二区三区| 欧美亚洲一区二区在线观看| 黄色a级三级三级三级| 中文字幕日本一区| 亚洲乱码一区av黑人高潮| 少妇高潮在线观看| 欧美综合国产| 国产精品久久国产三级国电话系列 | 国产第一页在线| 精品视频资源站| 看全色黄大色黄女片18| 欧美韩国日本在线观看| 97色在线播放视频| 国产哺乳奶水91在线播放| 久久综合久久综合久久| 青青青青在线视频| 青青草国产一区二区三区| 国产视频欧美视频| 国产一级做a爰片在线看免费| 美女视频一区二区三区| 免费一区二区三区| cao在线视频| 日韩你懂的在线观看| 日本在线观看网址| 日本麻豆一区二区三区视频| 精品免费一区二区三区蜜桃| 五月婷婷视频在线观看| 欧美狂野另类xxxxoooo| 国产av自拍一区| 一本不卡影院| 成人激情av| 中文字幕在线播放网址| 欧美日韩视频第一区| 我不卡一区二区| 亚洲一区二区毛片| 精品欧美一区二区在线观看视频| 亚洲第一图区| 日韩精品一区二区在线| 欧美爱爱免费视频| 国产麻豆精品在线| 中文字幕の友人北条麻妃| 国产美女久久| 日韩最新在线视频| 亚洲无码精品在线观看| 国产精品无码永久免费888| 日本888xxxx| av一区二区高清| 国产精品老女人精品视频| 久久电影中文字幕| 欧美伊人久久久久久久久影院 | 熟女少妇精品一区二区| 久久99视频| 国产精品色婷婷视频| 成人jjav| 欧美日韩成人在线| 欧美丰满熟妇bbbbbb| 国产一区不卡视频| 免费的一级黄色片| 91精品日本| 91精品国产乱码久久久久久久久 | 91丝袜高跟美女视频| 国产 日韩 亚洲 欧美| 美女视频亚洲色图| 国产成人高清激情视频在线观看 | 国产亚洲综合性久久久影院| 国产第一页视频| 成人激情视频| 亚洲一区中文字幕| 国产丝袜在线观看视频| 日韩极品精品视频免费观看| 无码人妻av一区二区三区波多野| 国产精品无人区| 女人扒开双腿让男人捅| 亚洲精品字幕| 无遮挡亚洲一区| 国产精品国产三级在线观看| 欧美激情一区二区三区久久久| 香蕉视频黄在线观看| 在线看日韩精品电影| 一级性生活免费视频| 成人免费av网站| 亚洲熟妇av一区二区三区| 色999国产精品| 国产精品一区二区三区免费| 性欧美1819sex性高清| 久久九九有精品国产23| 丰满肉肉bbwwbbww| 欧美在线观看视频在线| 老湿机69福利| 久久久不卡网国产精品二区| 爱豆国产剧免费观看大全剧苏畅 | 国产强被迫伦姧在线观看无码| 亚洲一区在线视频| www.黄色在线| 大白屁股一区二区视频| 九九视频精品在线观看| 欧美日韩日本国产亚洲在线| 欧美日韩高清在线一区| 国产情侣一区在线| 青青a在线精品免费观看| 成人video亚洲精品| 亚洲男人天堂视频| 亚洲第一页在线观看| 在线国产电影不卡| 国产精品第一页在线观看| 国产精品色哟哟网站| japanese在线观看| 国产精品影音先锋| www.日本xxxx| 亚洲麻豆av| 国产欧美综合一区| 日韩成人免费| 免费成人深夜夜行视频| 日韩精品视频中文字幕| 国产精品久久久久久久久久免费| 成人在线免费观看黄色| 精品国模在线视频| 国产香蕉视频在线看| 亚洲精品二三区| 亚洲av无码乱码国产麻豆| 欧美三级电影一区| 男人天堂视频在线| 欧美性猛交xxxx免费看漫画| 免费在线观看亚洲| 亚洲欧美另类在线| 国产一区二区三区视频播放| 久久久久88色偷偷免费| 国产精品久久久久久久无码| 国产高清无密码一区二区三区| 污色网站在线观看| 日韩不卡手机在线v区| 久久久999视频| 一区二区亚洲精品| a级黄色小视频| 亚洲性图久久| 国产一级爱c视频| 国产精品va| 欧美亚洲色图视频| 国语自产精品视频在线看8查询8| a级网站在线观看| 欧美精品偷拍| 黄色特一级视频| 午夜天堂精品久久久久| 大片在线观看网站免费收看| 婷婷综合久久| 日韩人妻精品一区二区三区| 成人在线免费观看视频| 午夜精品区一区二区三| 欧美亚洲在线日韩| 亚洲视频在线二区| 91视频一区| 一区一区视频| 欧美国产精品| 国产在线播放观看| 免费日韩视频| 天天影视综合色| 日本中文字幕一区二区有限公司| 日日摸天天爽天天爽视频| 久久夜色精品| 手机在线成人免费视频| 久久99精品网久久| 蜜桃视频无码区在线观看| 岛国精品在线播放| 国产精品jizz| 国产精品美女久久久久久| 国产黄a三级三级| 亚洲午夜羞羞片| 一区二区三区福利视频| 91高清视频在线| 国产精品人人爽| 欧美精品一区二区三区视频| 五月婷婷丁香网| 一区二区三区天堂av| caoporm免费视频在线| 性视频1819p久久| 二吊插入一穴一区二区| 成人福利网站在线观看11| 一区二区免费| 奇米精品在线| 欧美不卡在线| 99久久久无码国产精品6| 日本sm残虐另类| 美女日批在线观看| 久久久精品蜜桃| 欧美做爰爽爽爽爽爽爽| 好吊成人免视频| 亚洲无码精品在线播放| 亚洲福利在线播放| 日韩在线资源| 国模精品视频一区二区三区| 国产精品videossex撒尿| 国产传媒一区| 欧美激情国产在线| 精品久久久久久久久久中文字幕| 日本亚洲免费观看| 污污免费在线观看| 国产精品你懂的在线欣赏| 久久久久久久久久一区二区三区| 色欧美片视频在线观看| 亚洲av色香蕉一区二区三区| 伊人久久五月天| 好久没做在线观看| 成人午夜黄色影院| 精品一区二区三区在线| 日本人妻伦在线中文字幕| 日韩国产精品久久久久久亚洲| 丰满人妻一区二区三区大胸| 国产日韩欧美精品电影三级在线| 久久久久久福利| 欧美日韩一区二区三区四区 | 中文字幕精品一区二区精品| 日本小视频在线免费观看| 国产精品日日摸夜夜添夜夜av| 加勒比视频一区| 色哺乳xxxxhd奶水米仓惠香| 日本中文一区二区三区| 波多野结衣先锋影音| 尤物视频一区二区| 国产精品-色哟哟| 最近中文字幕日韩精品 | 国产美女高潮久久白浆| 欧美一级二级三级视频| 国产经典久久久| 久久成人免费电影| www.黄色在线| 日本韩国欧美一区| 青青操在线视频| 97久久久免费福利网址| 伊人久久亚洲| 天堂8在线天堂资源bt| 国产乱码一区二区三区| 福利视频第一页| 欧美日韩一卡二卡| 91se在线| 91精品国产综合久久香蕉最新版| 国产成人精品免费视| 成人午夜视频免费在线观看| 99久久精品情趣| 免费看日韩毛片| 日韩精品在线视频观看| 欧美裸体视频| 免费成人深夜夜行视频| 久久精品一区| 伊人网伊人影院| 在线国产电影不卡| 91精品国产91久久久久游泳池 | 香蕉成人app| 国产av熟女一区二区三区 | 91视频在线免费观看| 欧美一区影院| 中文字幕人妻一区| 欧美日韩免费看| 美国成人毛片| 国产精品日日摸夜夜添夜夜av| 欧美国产小视频| 樱花草www在线| 夜夜亚洲天天久久| 人妻少妇精品无码专区久久| 欧美性资源免费| 欧美人与拘性视交免费看| av在线无限看| 亚洲老妇xxxxxx| 日本精品一二区| 国产精品69精品一区二区三区| 国产探花在线精品一区二区| 污污的网站18| 夜夜操天天操亚洲| 青青免费在线视频| 国产精品视频男人的天堂| 91精品久久久久久久蜜月| 国产艳妇疯狂做爰视频| 色综合色综合色综合色综合色综合| 国产毛片在线看| 91免费观看网站| 中文一区二区| 性少妇xx生活| 精品噜噜噜噜久久久久久久久试看| 日韩欧美精品一区二区三区| 色一情一乱一伦一区二区三区丨 | 欧美女激情福利| 粉嫩av懂色av蜜臀av分享| 在线观看国产91| www国产在线观看 | 日本激情视频网站| 国产脚交av在线一区二区| 图片区亚洲欧美小说区| 日韩黄色一区二区| 色噜噜狠狠一区二区三区果冻| 日本www在线观看视频| 国产精品乱码视频| 美女视频一区二区| 国产成人精品一区二三区| 日韩综合中文字幕| 久久91成人| 日本少妇xxxx软件|