国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

利用redissyncer實(shí)現(xiàn)數(shù)據(jù)雙向同步

共 8683字,需瀏覽 18分鐘

 ·

2021-06-21 09:41

不知不覺(jué)【數(shù)據(jù)遷移專(zhuān)題】已經(jīng)進(jìn)行了兩期,在先前《跨越異構(gòu)鴻溝,Redis 遷移同步過(guò)程中的挑戰(zhàn)與解決方案》和《在線數(shù)據(jù)遷移,數(shù)字化時(shí)代的必修課》中,我們?yōu)榇蠹医榻B了數(shù)據(jù)遷移挑戰(zhàn)與技術(shù)選型,并詳細(xì)分享京東云自研開(kāi)源的RedisSyncer 項(xiàng)目。本篇是系列內(nèi)容第三篇,我們來(lái)聊一聊如何用RedisSyncer實(shí)現(xiàn)數(shù)據(jù)雙向同步。




redissyncer簡(jiǎn)介


RedisSyncer是京東云自研的redis多任務(wù)同步中間件工具集,應(yīng)用于redis單實(shí)例及集群同步。該工具集包括

  • redis 同步服務(wù)引擎 redissyncer-server
  • redissycner 客戶端 redissyncer-cli
  • redis 數(shù)據(jù)校驗(yàn)工具 redissycner-compare
  • 基于docker-compse的一體化部署方案 redissyncer

目前在github開(kāi)源:

https://github.com/TraceNature/redissyncer-server


緩存同步的定義及必要性


  • 雙向同步是指在兩個(gè)實(shí)例都有存量數(shù)據(jù)和寫(xiě)流量的情況下進(jìn)行兩實(shí)例同步,最終達(dá)到兩實(shí)例數(shù)據(jù)動(dòng)態(tài)一致的過(guò)程
  • 緩存數(shù)據(jù)全局可讀,防止緩存擊穿
  • 保證緩存命中率,為數(shù)據(jù)庫(kù)減壓
  • 當(dāng)單一數(shù)據(jù)中心發(fā)生故障時(shí),保證數(shù)據(jù)在另一中心完全可見(jiàn)
雙向同步的操作難度與冷啟動(dòng)問(wèn)題

  • 原生redis同步無(wú)法區(qū)分緩存數(shù)據(jù)來(lái)源
  • 由于redis本身沒(méi)有實(shí)例標(biāo)識(shí)(類(lèi)似mysql的GTID),在雙向同步時(shí)形成數(shù)據(jù)回環(huán)
  • redis環(huán)狀緩沖區(qū)覆蓋后,數(shù)據(jù)混淆且難于清理


基于數(shù)據(jù)沖銷(xiāo)的雙向同步方案


利用數(shù)據(jù)沖銷(xiāo)的方式破除數(shù)據(jù)寫(xiě)入環(huán)。該方案的必要條件是,同步的實(shí)例或集群寫(xiě)入的key無(wú)沖突,即在數(shù)據(jù)中心A寫(xiě)入的key,不會(huì)同一時(shí)間在B中心寫(xiě)入相異值。


假設(shè)我們有兩個(gè)redis實(shí)例redis1和redis2,再分別定義兩個(gè)沖銷(xiāo)池set1和set2,記錄key及同步次數(shù)。

  1. 啟動(dòng)redis1->redis2的全量同步任務(wù)
  2. 啟動(dòng)redis1->redis2增量任務(wù) 2-1。增量任務(wù)先在set1做沖銷(xiāo)(set1中存在的數(shù)據(jù)刪除并丟棄同步) 2-2. 未被沖銷(xiāo)數(shù)據(jù)同步到redis2
  3. 啟動(dòng)redis2->redis1的全量任務(wù),此全量同步數(shù)據(jù)一定會(huì)作為增量形成回環(huán),所以要先寫(xiě)入set1再寫(xiě)入redis1,以便數(shù)據(jù)作為增量回環(huán)同步到redis2時(shí)利用set1沖銷(xiāo) 3-1,寫(xiě)入set1 3-2,寫(xiě)入redis1
  4. 啟動(dòng)redis2->redis1增量任務(wù),增量任務(wù)先在set2做沖銷(xiāo)(set2中存在的數(shù)據(jù)刪除并丟棄同步),增量任務(wù)先寫(xiě)入set1在寫(xiě)入redis1避免循環(huán)復(fù)制 4-1。通過(guò)set2沖銷(xiāo)數(shù)據(jù) 4-2,數(shù)據(jù)寫(xiě)入set1 4-3,數(shù)據(jù)寫(xiě)入redis1
  5. 改變r(jià)edis1->redis2增量任務(wù)行為,增量任務(wù)先在set1做沖銷(xiāo)(set1中存在的數(shù)據(jù)刪除并丟棄同步),未沖銷(xiāo)數(shù)據(jù)先寫(xiě)入set2再同步到redis2 5-1 寫(xiě)入set2 5-2 寫(xiě)入redis2


為什么增加第五步改變r(jià)edis1->redis2增量任務(wù)行為呢?因?yàn)樵诘谒牟酵瓿蓵r(shí)set2中并沒(méi)有從redis1->redis2的增量數(shù)據(jù),這會(huì)造成從redis1->redis2的增量數(shù)據(jù)會(huì)轉(zhuǎn)換成redis2->redis1增量數(shù)據(jù)且在本地?zé)o法被沖銷(xiāo),只有數(shù)據(jù)進(jìn)入set1且被寫(xiě)入redis1后再次作為增量數(shù)據(jù)向redis2同步時(shí)才會(huì)被沖銷(xiāo),增加了網(wǎng)絡(luò)開(kāi)銷(xiāo)同時(shí)redis1也增加了一次寫(xiě)入負(fù)載。


數(shù)據(jù)沖銷(xiāo)方式及其缺陷


  • 數(shù)據(jù)沖銷(xiāo)方式需要在每次發(fā)送數(shù)據(jù)前對(duì)數(shù)據(jù)進(jìn)行緩沖,正常情況下緩沖內(nèi)存占用不大。但當(dāng)網(wǎng)絡(luò)阻塞或由于網(wǎng)絡(luò)不暢無(wú)法沖銷(xiāo)數(shù)據(jù)時(shí),會(huì)造成緩沖區(qū)暴增導(dǎo)致OOM
  • 數(shù)據(jù)沖銷(xiāo)方式帶來(lái)的冷啟動(dòng)問(wèn)題
    • 當(dāng)任務(wù)異常中斷且redis offset被覆蓋的情況下,因?yàn)閿?shù)據(jù)矯正依據(jù)缺失,需要重建緩存
    • 若采用數(shù)據(jù)持久化的方式先持久化后發(fā)送的方式,那么在沖銷(xiāo)過(guò)程中會(huì)大大降低同步效率


數(shù)據(jù)雙寫(xiě),看似美好其實(shí)坑多多


業(yè)務(wù)雙寫(xiě)是最符合人類(lèi)直覺(jué)的雙向方案,同一份數(shù)據(jù)寫(xiě)入兩個(gè)數(shù)據(jù)中心以保障數(shù)據(jù)冗余。但是在實(shí)際操作中會(huì)遇到數(shù)據(jù)寫(xiě)入順序問(wèn)題。


雙寫(xiě)方案中的數(shù)據(jù)順序問(wèn)題


  • 并發(fā)環(huán)境中同時(shí)寫(xiě)入同一個(gè)key的情況下,并不能保障key寫(xiě)入redis的順序。造成key的結(jié)果不一致。

  • 通過(guò)統(tǒng)一隊(duì)列解決順序問(wèn)題
  • 網(wǎng)絡(luò)中斷導(dǎo)致數(shù)據(jù)缺失
  • 強(qiáng)一致性會(huì)導(dǎo)致單機(jī)房不可用的情況下寫(xiě)操作全局不可用,并需要在數(shù)據(jù)在某一次提交不完全成功的情況下提供回滾機(jī)制、及數(shù)據(jù)補(bǔ)償機(jī)制
  • 隊(duì)列帶來(lái)寫(xiě)效率損失,redis失去作為緩存層的意義


雙讀方案



  • 每個(gè)數(shù)據(jù)中心建立redis 讀寫(xiě)實(shí)例與只讀實(shí)例
  • 讀寫(xiě)數(shù)據(jù)中的落地?cái)?shù)據(jù)通過(guò)redissyncer同步到對(duì)端只讀實(shí)例
  • 應(yīng)用讀數(shù)據(jù)時(shí)先讀取只讀實(shí)例若有數(shù)據(jù)返回則返回;若無(wú)數(shù)據(jù)返回則讀取讀寫(xiě)實(shí)例
  • 雙讀方案的限制條件
    • key的生成在全局具有唯一性既兩個(gè)中心不出現(xiàn)重復(fù)的key
    • 避免incr 、 lpush 等非冪等操作
    • 由于網(wǎng)絡(luò)抖動(dòng)可能造成數(shù)據(jù)流中斷,盡管redissyncer以及對(duì)非冪等命令做了處理,但是極端情況仍然可能造成數(shù)據(jù)不準(zhǔn)確影響業(yè)務(wù)


雙讀方案實(shí)踐模擬


環(huán)境列表


主機(jī)名IP地址部署軟件或工具
az_a110.0.0.110redis5.0
az_a110.0.0.110redissyncer
az_a210.0.0.111redis5.0
az_b110.0.0.112redis5.0
az_b110.0.0.112redissyncer
az_b210.0.0.113redis5.0
  • az_a1 代表 a 中心的 redis RW 實(shí)例;az_a2 代表 a 中心 redis RO 實(shí)例;az_b1 代表 b 中心 redis RW 實(shí)例;az_b2 代表 b 中心 redis RO 實(shí)例

  • 分別在 az_a1、az_b1上部署 redissyncer 用于同步到對(duì)端數(shù)據(jù)中心

  • 通過(guò) redisdual 模擬雙讀客戶端

實(shí)施細(xì)則

  • 部署 redis 詳見(jiàn) redis 部署文檔,這里不累述
  • 部署redissyncer(docker方式); az_a1、az_b1 上執(zhí)行
  • clone redissyncer 項(xiàng)目
    1git clone https://github.com/TraceNature/redissyncer.git
    2cd redissyncer
    3docker-compose up -d

  • 部署 redissyncer-cli 用于與服務(wù)器通訊

    • 下載客戶端程序

      1wget https://github.com/TraceNature/redissyncer-cli/releases/download/v0.   1.0/redissyncer-cli-0.1.0-linux-amd64.tar.gz
      2
      3tar zxvf redissyncer-cli-0.1.0-linux-amd64.tar.gz  
        
    • 配置.config.yaml 文件

      1# redissyncer-server 訪問(wèn)地址及端口
      2syncserver: http://127.0.0.1:8080
      3# 訪問(wèn) redissyncer-server 的 token??梢酝ㄟ^(guò) redissyncer-cli login 命令獲得。默認(rèn)用戶名 admin 默認(rèn)密碼 123456.完整命令 redissyncer-cli login admin 123456
      4token: 379F5E2BD55A4608B6A7557F0583CFC5

  • az_a1 配置同步任務(wù)同步到 az_b2
    • 編輯任務(wù)文件  synctask/a1_to_b2.json
       1{
      2"sourcePassword""redistest0102",
      3"sourceRedisAddress""10.0.0.110:16375",
      4"targetRedisAddress""10.0.0.113:16375",
      5"targetPassword""redistest0102",
      6"taskName""a1_to_b2",
      7"targetRedisVersion"5.0,
      8"autostart"true,
      9"afresh"true,
      10"batchSize"100
      11}
    • 啟動(dòng)任務(wù)

      1redissyncer-cli-0.1.0-linux-amd64 -i
      2redissyncer-cli> task create source synctask/a1_to_b2.json;

  • az_b1 配置同步任務(wù)同步到 az_a2

    • 編輯任務(wù)文件  synctask/b1_to_a2.json

       1{
      2  "sourcePassword""redistest0102",
      3  "sourceRedisAddress""10.0.0.112:16375",
      4  "targetRedisAddress""10.0.0.111:16375",
      5  "targetPassword""redistest0102",
      6  "taskName""b1_to_a2",
      7  "targetRedisVersion"5.0,
      8  "autostart"true,
      9  "afresh"true,
      10  "batchSize"100
      11}

    • 啟動(dòng)任務(wù)

      1redissyncer-cli-0.1.0-linux-amd64 -i
      2redissyncer-cli> task create source synctask/b1_to_a2.json;

  • 通過(guò)redisdual 模擬redis 雙讀

    克隆 https://github.com/TraceNature/redisdual.git 項(xiàng)目自行編譯
  • config.yaml 文件參數(shù)詳解

     1# 日志配置不需改動(dòng)
    2zap:
    3level: 'debug'
    4format: 'console'
    5prefix: '[redisdual]'
    6director: 'log'
    7link-name: 'latest_log'
    8show-line: true
    9encode-level: 'LowercaseColorLevelEncoder'
    10#  stacktrace-key: 'stacktrace'
    11log-in-console: true
    12
    13# 執(zhí)行時(shí)間間隔,單位毫秒,可以控制每次執(zhí)行的間隔時(shí)長(zhǎng),便于觀察日志
    14execinterval: 1
    15
    16# 循環(huán)執(zhí)行最大步長(zhǎng),當(dāng)大于步長(zhǎng)時(shí)歸零;當(dāng)達(dá)到步長(zhǎng)時(shí),重新執(zhí)行寫(xiě)入和雙讀操作
    17loopstep: 30
    18
    19# 本地key前綴,區(qū)分本地寫(xiě)入key和remote端寫(xiě)入的key
    20localkeyprefix: a
    21remotekeyprefix: b
    22
    23# redis 讀寫(xiě)實(shí)例
    24redisrw:
    25db: 0
    26addr: '114.67.76.82:16375'
    27password: 'redistest0102'
    28# redis 只讀實(shí)例
    29redisro:
    30db: 0
    31addr: '114.67.120.120:16375'
    32password: 'redistest0102'

  • 主要代碼分析
    redisdual/cmd/start.go;func dual(rw *redis.Client, ro *redis.Client, key string) 函數(shù).雙讀的主要邏輯,先讀RO實(shí)例,有返回值輸出,無(wú)返回值讀RW庫(kù),有返回值輸出,無(wú)返回值結(jié)束查詢
    1func dual(rw *redis.Client, ro *redis.Client, key string) {
    2  roResult, err := ro.Get(key).Result()
    3
    4  if err == nil && roResult != "" {
    5      global.RSPLog.Sugar().Infof("Get key %s from redisro result is:%s ",     key, roResult)
    6      return
    7  }
    8
    9  rwResult, err := rw.Get(key).Result()
    10  if err != nil || rwResult == "" {
    11      global.RSPLog.Sugar().Infof("key %s no result return!", key)
    12      return
    13  }
    14
    15  global.RSPLog.Sugar().Infof("Get key %s from redisrw result is: %s ",    key, rwResult)
    16
    17}


  • redisdual/cmd/start.go;func startServer() 函數(shù)。啟動(dòng)服務(wù),定時(shí)執(zhí)行RW實(shí)例寫(xiě)入。并執(zhí)行雙讀操作
  •  1// -d 后臺(tái)啟動(dòng)
    2if global.RSPViper.GetBool("daemon") {
    3cmd, err := background()
    4if err != nil {
    5panic(err)
    6}
    7
    8//根據(jù)返回值區(qū)分父進(jìn)程子進(jìn)程
    9if cmd != nil { //父進(jìn)程
    10fmt.Println("PPID: ", os.Getpid(), "; PID:", cmd.Process.Pid, "; Operating parameters: ", os.Args)
    11return //父進(jìn)程退出
    12else { //子進(jìn)程
    13fmt.Println("PID: ", os.Getpid(), "; Operating parameters: ", os.Args)
    14}
    15}
    16
    17global.RSPLog = core.Zap()
    18global.RSPLog.Info("server start ... ")
    19
    20pidMap := make(map[string]int)
    21// 記錄pid
    22pid := syscall.Getpid()
    23pidMap["pid"] = pid
    24
    25pidYaml, _ := yaml.Marshal(pidMap)
    26dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
    27if err != nil {
    28panic(err)
    29}
    30
    31if err := ioutil.WriteFile(dir+"/pid", pidYaml, 0664); err != nil {
    32global.RSPLog.Sugar().Error(err)
    33panic(err)
    34}
    35global.RSPLog.Sugar().Infof("Actual pid is %d", pid)
    36
    37//redis 讀寫(xiě)實(shí)例
    38redisRW := GetRedisRW()
    39
    40//redis 只讀實(shí)例
    41redisRO := GetRedisRO()
    42
    43//清理RW
    44redisRW.FlushAll()
    45
    46global.RSPLog.Sugar().Info("execinterval:", global.RSPViper.GetInt("execinterval"))
    47loopstep := global.RSPViper.GetInt("loopstep")
    48i := 0
    49for {
    50if i > loopstep {
    51i = 0
    52}
    53key := global.RSPViper.GetString("localkeyprefix") + "_key" + strconv.Itoa(i)
    54redisRW.Set(key, key+"_"+strconv.FormatInt(time.Now().UnixNano(), 10), 3600*time.Second)
    55dual(redisRW, redisRO, global.RSPViper.GetString("localkeyprefix")+"_key"+strconv.Itoa(i))
    56dual(redisRW, redisRO, global.RSPViper.GetString("remotekeyprefix")+"_key"+strconv.Itoa(i))
    57i++
    58time.Sleep(time.Duration(global.RSPViper.GetInt("execinterval")) * time.Millisecond)
    59}
  • 啟動(dòng)redisdual 并觀察日志

    redisdual start

小結(jié)

redis的雙向同步方案的機(jī)制大致就是以上三種,具體生產(chǎn)中采用哪種方式要根據(jù)業(yè)務(wù)特性進(jìn)行權(quán)衡。從數(shù)據(jù)安全和維護(hù)成本方面考慮,雙讀方案從運(yùn)維成本來(lái)講是最少的,且在故障發(fā)生時(shí)不會(huì)引起數(shù)據(jù)混淆。


瀏覽 202
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 爆操无码| 亚洲香蕉视频网站| 香蕉福利网| 欧美日屄视频| 六月婷婷中文字幕| av色色| 69黄色视频| 吴梦梦《女教师时间暂停》| www天天日| 亚洲av图片| 另类日韩| 操逼AV无码| 免费观看在线黄片| 无码区一区二区三区| 欧美一区二区在线| 午夜av免费在线| 日韩色爱| 亚洲精品资源在线| 青春草在线观看| 麻豆911精一区二区| 欧美日韩国产激情| 爱操视频| 国产成人免费观看视频| 天天弄天天操| 欧美中文字幕| 日日舔| 欧洲操逼视频| av玖玖| 精品999999| 亚洲精品一二三区| 国产操屄网| 97国产精品久久| 一本色道久久综合亚洲精品久久| 97黄色| 夜夜撸天天干| 免费无码婬片A片AAA毛片96| 蜜桃免费| 成人黄网免费观看视频| 思思热思思操免费视频| 日韩性爱小说| 国产卡一卡二| 三级视频网站| 色777色| 日韩精品电影| 日韩小电影在线观看| 成人激情免费视频| 综合+++夜夜| 色五月欧美| 国产欧美性爱| 成年人免费网站| 欧美日韩性爱| 亚洲黄色视频在线免费观看| 日韩午夜剧场| 精品国产精品三级精品AV网址| 免费看的黄色视频| 欧美日韩免费观看视频| 亚洲成人免费在线观看| 学生妹作爱片| 青青青草视频在线观看| 国产毛片欧美毛片高潮| 囯产精品一区二区三区线一牛影视1 | 中文字幕2025年最好看电视剧| 成人小说视频在线社区| 激情综合网站| 国产一区二区00000视频| 四虎性爱视频| 久操播放器| 成人图片小说| h片在线免费观看| 九九A片| 国产AV一区二区三区| 骚逼黄片| 思思热精品在线| 欧美丰满美乳XXⅩ高潮www| 丰满人妻一区二区三区Av猛交 | 五月丁香激情婷婷| 在线观看AV无码| 一本色道久久综合狠狠躁的推荐 | 日韩一区在线播放| 中文字幕免费AV| 成人午夜在线| 亚洲成人AV一区二区| 加勒比精品在线| 99精品一区二区三区| 国产精品一线| 天堂中文在线播放| 亚洲无码精品视频| 北条麻妃无码精品| 欧美黄色电影在线观看| 亚洲播播在线视频| 三级麻豆| 亚洲天堂2016| 国产福利91精品一区二区三区 | 亚洲精品国产精品乱码视99| 一本色道久久综合狠狠躁的推荐| 性爱av在线观看| 亚洲精品视频在线播放| 特级西西人体www高清大胆| 操逼免费| 麻豆乱伦视频| 国产激情精品视频| 精品在线免费视频| 亚洲无码专区视频| 国产成人电影免费在线观看| 婷婷综合五月| 韩国无码高清视频| 人妻丝袜中出北条麻妃| 丁香成人五月天| 欧美性爱XXXX| 毛片毛片毛片毛片毛片毛片| 人人人人摸| 羽月希无码| 国产乱╳╳AⅤ毛片| 国产精品无毛五区六区| 天天操夜夜撸| 国产精品扒开腿做爽爽爽视频| 中文字幕免费视频| 中文字幕2018第一页| 激情白浆| 成人片成人网久久蜜桃臀| 日韩在线成人| 粉嫩av一区二区白浆| gogogo高清在线观看免费直播中国 | 婷婷V亚洲V丁香月天V日韩V | 91亚洲国产AⅤ精品一区二区| 超碰97人人爱| 五月丁香六月激情| 大黄网站在线观看| 五月天综合在线| 啪啪成人网| 人人操AV| 中文不卡在线| 欧美日韩在线观看一区二区三区| 人人摸人人草| 国内免费AV| 97人妻一区二区精品视频| 自拍一区在线观看| 嫩BBB槡BBBB槡BBBB撒尿-百度| 91丨九色丨熟女新版| 人人艹人人艹| 久9热| 日韩激情无码一区二区| 中文字幕av免费在线观看| 俺来也官网欧美久久精品| 婷婷五月天黄色| 人妻体内射精| 国产裸体美女网站| 欧美一级A片在线观看| 国产人国产视频成人免费观看… | 成人性爱视频网站| 91在线免费看| 中文字幕毛片| 国产在线视频一区二区| 日本在线一级| 亚洲人成免费网站| 欧美性爱一区二区| 成人理伦A级A片在线论坛| 五月丁香综合久久| 无码av在线播放| 成人欧美精品| 色婷婷AV在线| 青草伊人av| 上床网站| 丁香欧美| 亚洲成人电影一区| 91精品国产综合久久久蜜臀粉嫩 | 国产精品久久久久久婷婷天堂| 羽月希在线播放| 一级特黄大片录像i| 久久九九电影| AV资源网站在线| 天天色图| 欧美成人a片| 9热精品| 精品国产AV无码一区二区三区| 老司机AV91| 无码av在线观看| 亚洲无码视频一区二区| 日韩成人免费在线观看| 北条麻妃无码观看| 青草久久视频| 精品免费一区二区三区四区 | 人人舔人人草| 吴梦梦一区二区在线观看| 九九热精品视频在线观看| 婷色五月天| 三级视频国产| 大鸡巴操小逼视频| 91黄色毛片| 懂色av,蜜臀AV粉嫩av| 熟女综合| 人妻精品无码| 红桃91人妻爽人妻爽| 可以免费观看的AV| 国产精品久久久久久久久久| 大香蕉精品视频在线| 97久久一区二区| 三级毛片视频| 人妻中文字幕久久| 免费av一区二区| 无码高清在线| 一区二区三区在线观看视频| 久久黄色大片| 婷婷五月天丁香网| 免费视频在线观看黄| 丁香五月天在线播放| 性爱视频网址| 久久伊人影院| 熟妇在线| 亚洲精品女人久久久| 日韩精品无码AV| 揄拍成人国产精品视频| 亚洲AV无码一区毛片AV| 肏亚洲美女| 成人在线免费观看视频| 成人做爰A片AAA毛真人| 成人影音先锋| 99在线视频精品| 青娱乐老视频| 亚洲视频在线视频| 麻豆AV在线播放| 国产成人综合在线| 亚洲天堂在线观看免费视频| 国产精品久久久久久久久久久久久久久久 | A色色| 操逼网址大全| AV无码一区| AV观看免费| 精品一区二区三区蜜桃臀www | 97伊人超碰| a免费视频在线观看| 精品国产免费无码久久噜噜噜AV | 亚洲AV无码成人精品区天堂小说| 欧美性爱自拍| 亚洲中文字幕AV| 欧美性爱中文字幕| 久久久网站| 国产成人精品免费视频| 日本AV在线播放| 国产在线拍揄自揄拍无码福利| 四川乱子伦95视频国产| 不卡无码在线观看| 成人H动漫精品一区二区三区蘑菇 高清无码视频在线免费观看 | 三浦恵子一级婬片A片| 99国产在线观看免费视频| 五月天婷婷影院影院| 国产一级片电影| 91在线不卡| 青青草精品在线视频| R四虎18| 国产一片黑夜内射| 蝌蚪窝免费视频| 插插插菊花综合网| 超碰在线视| 中文字幕高清无码视频| 九九亚洲| 精品人妻午夜一区二区三区四区| 狼友精品| 亚洲骚逼| 日韩日逼视频| 操比视频| 成人网站在线免费观看| 香蕉漫画在线观看18| 怍爱视频| A一级黄片| 五月天激情综合| 日韩久久久| 午夜激情毛片| 久久久精品网站| 乱伦综合网| 日韩日屄视频| 日韩欧美在线视频观看| 丁香五月在线| 三级乱伦86丝袜无码| 亚洲男女av| 久久艹精品视频| 亚洲天堂视频网站| 国产人妻精品一二三区| 北条麻妃被躁57分钟视频在线 | 中文字幕五月久久婷婷| 神马午夜影院| 好男人WWW社区在线视频夜恋| 日韩成人高清| 91在线免费视频观看| 欧美极品视频| 五月丁香中文字幕| 国产一区二区三区在线| 亚洲视频456| 人人澡av| 开心激情婷婷| av在线直播| 精品人妻一区| 成人小说视频在线社区| 日韩无修正| 91无码一区二区| 91看片看婬黄大片女跟女| 伊人成年网| 欧美性爱在线视频| 岛国av在线| 成人精品永久免费视频99久久精品 | 毛片久久久| 黄色成人网站在线观看免费| 精品人妻一区二区三区浪潮在线| 狠狠躁夜夜躁人人爽人妻| 一级日韩一级欧美| 欧美性爱A| 99热国产在线观看| 男人天堂无码| 中文字幕永久在线| 色97| 免费中文字幕av| 久久综合热| 国产福利视频| 特级西西444www大胆高清图片| 天啪| 国产精品96久久久| 日韩无码不卡| 天天爱夜夜爱| 日本内射在线播放| 国产香蕉在线| 成人影视1-23| 中文字幕在线观看网| 日本中文字幕中文翻译歌词| 欧美八区| 亚洲无码门| 午夜久久福利| 日韩欧美操| 五月综合色| 成人欧美一区二区三区白人| 国产成人中文字幕| 婷婷五月天网址| 国产无码一区二区| 中文字幕精品三区无码| 一级黄色在线| 亚洲成人高清无码| 日韩啪啪片| 国产精品V亚洲精品V日韩精品| 一本色道久久综合无码人妻 | 黑人毛片91久久久久久| 西西人体444rt高清大胆模特| 91九色蝌蚪| 国产综合色网| 一本色道久久综合无码| 午夜激情视频在线观看| 欧美精品在线免费| 五月停亭六月,六月停亭的英语 | 久久久久久久久久免费视频| 国产麻豆精品成人免费视频| www.91麻豆| 亚洲无码人妻一区| 欧美精品成人免费| 午夜激情av| 色呦呦视频| 亚洲精品人妻在线| 国产精品天天AVJ精麻传媒| 美日韩一区| 黄片高清免费| 国产粉嫩小泬白浆18p| 999久久久精品| 成人A片免费观看| 五月丁香综合网| 在线中文字幕第一页| 天天爽天天搞| 麻豆久久| 人妻丰满精品一区二区| 三根一起进菊眼| 老司机狠狠干| 影音先锋在线成人| 黄网站免费看| 日韩在线观看免| AV东方在线| 婷婷草逼| 在线观看内射视频| 国产精品电影| 啪啪免费| 精品自拍视频| 狠狠搞狠狠操| 国产成人无码免费看片| 福利老湿69| 欧美操BB| 极品美女援交在线| 日韩第1页| 丁香五月网| 欧美日韩视频一区二区| 成人无码视频在线观看| 日韩无码中文字| av一区二区三区四区| 精品无码久久| 亚洲视频高清无码| 最新国产激情视频| 亚洲色无码| 天天操操| 亚洲婷婷五月天| 三级视频在线播放| 51妺嘿嘿在线电影免费观看| 亚洲精品秘一区二区三线观看 | 中文字幕视频在线免费观看| 搡女人视频国产一级午夜片| 亚欧av无码| 91无码成人| 日韩视频播放在线综合| 国产黄色视屏| 欧美3区| 微熟女地址导航| 天堂8在线19| 日韩一区二区在线视频| 91麻豆精品在线| 日韩精品成人无码免费| 亚洲a在线视频| 久久国产成人| 黄色小视频在线| 人妻无码高清| 亚洲第一a| 亚洲免费视频播放| 日韩无码2024| 五月婷婷激情网| 天天舔天天操| 色播五月丁香| 黑人AV在线观看| 插进去综合图| 青青草中文字幕| 亚洲午夜精品久久久久久APP | 日韩综合网| 日韩中文字幕免费在线观看| 北条麻妃无码在线视频| 国产乱妇乱子伦视频免费观看让女人 | 亚洲天堂AB| 国产丝袜无码| 日本精品三级| 五月天性爱| 99re在线观看观看这里只有精品| 伊人久久福利视频| 国产无遮挡| 中文字幕AV免费观看| 亚洲午夜视频在线观看| 精品一区二区三区四| 2025精品精品视频| 国产美女全裸网站| 在线不卡中文字幕| www.水蜜桃| 欧美日韩在线看| 极品少妇视频| 最近2021中文字幕免费| 成人小说亚洲一区二区三区| 欧美视频一区| 国产精品无码在线| 国产精品777777| 黄色成人在线观看| 在线亚洲欧美| 亚洲欧美在线成人| 日本无码在线观看| 国产视频一区二区三区四区五区| 在线成人毛片| 五月婷婷综合网| 欧美亚洲日韩一区二区| 西西444大胆无码视频| 超碰在线观看91| 亚洲视频大全| 日韩一级无码毛片| 最新国产av| 狠狠狠狠狠操| 免费黄色小视频在线观看| 日韩综合一区| 国产成人无码免费| 欧洲亚洲无码| 亚洲AV无码一区二区三竹菊 | 老司机一区二区三区| 亚洲色成人网站www永久四虎 | 干少妇视频| 91香蕉视频| 精品码一区二在线观看| 91黑人丨人妻丨国产丨| 人人操人人透| 日本在线观看| 久久黑人| 久久精品国产亚洲AV成人婷婷| 在线免费观看国产视频| 黄片视频在线观看| 91九色91蝌蚪91窝成人| 日本精品在线播放| 成人在线看片| h片在线播放| 一级a片免费观看| 亚洲免费一级片| 日韩欧美国产成人| 69AV视频| av一级片| 亚洲人成色777777无码| 激情小说在线视频| 日本免费福利视频| 一级av| 亚洲精品97久久中文字幕| 亚洲国产无码在线观看| 国产主播一区二区| 天天干天天干| 99精品视频在线播放免费| 国产精品成人在线观看| 人人操人人操人人操人人操| 日本视频爱爱| 91亚洲视频| 尻屄视频在线观看| 在线中文字幕AV| 国产中文字幕波多| 日逼大香蕉| 竹菊影视一区二区三区| 亚洲人成电影| 日韩免费一区| 一区二区三区中文字幕| 成人精品一区二区区别解析 | 亚洲最新无码视频| 日韩人妻无码专区一区二区| 久久久久久久国产精品| 欧美一级免费观看| 四虎影院在线| 尤物视频在线观看视频| 国产av影音| 日本高清视频www| 青青草原在线视频| av天天干| 狠狠操AV| 欧美动态视频| 国产在线精品观看| 内射熟妇| 91插插插插| 亚洲在线中文字幕| 亚洲wwwwww| 亚洲波多野结衣| 豆花视频在线免费观看| 久久久无码视频| 久久久久极品| 亚洲一区二区视频在线观看| 人妻少妇被猛烈进入中文字幕| 69久久| 岛国av免费| 国产午夜无码视频在线观看 | 天天草网| 免费看一级高潮毛片| 国产三级电影| 七六十路の高齢熟妇无码| 人人舔人人草| 久久综合久久鬼色| 三级久久久| 五月天婷婷激情视频| 国产精品一区二区三区不卡| 国产一精品| 日韩在线视频播放| 91抽插| 亚欧在线| 日本wwwwww| 少妇搡BBBB搡BBB搡毛片| 久久午夜无码鲁丝片午夜精品| 国产一级特黄A片| 天天艹天天干| 国产灌醉| 中文字幕无码播放| 亚洲永久天堂| 嘿嘿av| 婷婷五月天免费视频| 在线亚洲免费观看| 粉嫩小泬BBBB免费看| 黄色在线免费| 久草综合视频| 青草视频在线播放| 国产亚洲视频在线观看| 日韩高清一区| 欧美精产国品一二三| 亚洲无线观看| 亚洲成人中文字幕| 黑人AV| gogogo视频在线观看黑人| 老女人肏屄视频| 伊人干综合| 91精品久久人妻一区二区夜夜夜 | 俺也去网站| 久久国产精品免费视频| 亚洲AV播放| 成人黄色性爱视频| 亚洲欧美日韩高清| 热久久91| 国产一级AV片| 亚洲日韩精品成人无码专区AV | 国产精品91久久久| 色综合五月婷婷| 天堂成人网站| 天天日日日干| 久久91精品| 永久免费黄色视频| 福利视频二区| 无码乱伦视频| 午夜激情视频在线观看| 久久久麻豆| 奶大丰满一乱一视频一区二区三区在 | 在线播放一区二区三区| 中文字幕av久久爽爽| 午夜啪啪视频| 欧洲成人在线观看| 视色av| www.青青草| 天堂资源在线| 91大神在线资源观看无广告| 91大熟女91大腚女人| 北岛玲丝袜办公室高跟| 91西安站街老熟女露脸| 微熟女地址导航| 一区二区视频在线观看| 波多野42部无码喷潮更新时间| 国产黄色AV| 欧美区在线观看| 日韩wuma| 欧美久操| 91人妻最真实刺激绿帽| 91精品国产综合久久蜜臀使用方法| 欧美级毛片一进一出| 动图综合亚洲综合欧美男男 | 国产精品免费观看久久久久久久久| 欧美XXX黑人XYX性爽| 国产成人在线免费视频| 69视频在线观看| 思思热精品在线| 免费黄色av网址| 国产jizz| 欧美一级网| 国产日批| 亚洲高清视频无码| 免费A片在线看| 国产美女高潮视频| 狠狠干免费视频| 日韩无码网站| 日韩性生活| 亚洲aⅴ| 国产免费一区二区| 欧美日韩在线观看视频| 国产无码激情视频| 99电影网手机在线观看| 久久精品国产AV| 免费看日逼视频| 国产一级aa| 伊人毛片| 91无码高清视频| 国产精品高清无码| 精品人妻一区二区免费蜜桃视频| 成人做爰100片免费看| 香蕉视频a| 操逼逼网站| 亚洲成人免费网站| 中文字幕高清| 996精品视频| 欧美操BB| 亚洲高清免费视频| 婷婷五月18永久免费视频| 亚洲AV无码成人精品区久| 成人做爰A片免费看网站| 影音先锋aV成人无码电影| 精品视频在线免费| www狠狠| 黄色资源在线观看| 亚洲欧美手机在线| 成人婷婷五月天| 黄色小网站在线观看| 欧美一级黄色性爱视频| 99热这里是精品| 手机成人在线视频| A∨无码免费| 国产精品一区二区免费| 亚洲欧美v| 国产高清AV| 中文字幕一级A片高清免| 麻豆午夜成人无码电影| 日本三级网址| 久久大香蕉网| AV无码免费观看| 国产欧美一级片| 中文字幕日本人妻| 久久久久久AV| 成人蜜臀AV| 亚洲性爱在线播放| 一区二区高清无码| 久久久久久久久毛片| 午夜激情五月天| 国产一级美女操逼视频免费播放| 美女性爱视频网站| 久久少妇视频| 巨爆乳肉感一区二区三区视频| 中文字幕成人在线观看| 国产视频久久久| 欧美一区在线视频| 色婷婷在线无码精品秘人口传媒| 亚洲天堂在线视频| 午夜三级无码| 国产AV无码成人精品毛片| 干妞网免费视频| 成人精品水蜜桃| 久久任你操| 日韩无码免费电影| 无码aa| 日韩黄色电影网| 成人特级毛片| 91精品国产一区二区三区四区大 | 最近日本中文字幕中文翻译歌词 | 无码777| 精品国产乱子伦一区二区三区,小小扐 | 豆花成人社区,视频| 成人毛片一区二区三区无码 | 欧美深夜福利| 免费18蜜桃久久19| 69人妻人人澡人人爽久久| 国产高潮视频| 2018中文字幕第一页| 在线观看者亚洲| 天天草天天日| 欧美第1页| 麻豆三级片| 亚洲精品成人7777777| 偷拍一区| 国产免费AV在线观看| 一本高清无码| 中字一区人妻水多多| 一级免费黄色视频| 国产精品秘麻豆果冻传媒潘甜甜丶 | 亚洲无码少妇| 精品婷婷| 国产精品卡一| 日韩人妻无码一区二区三区99| 97久久超碰| 精品国产91乱码一区二区三区| 人人操人人妻人人爽| 天天操网| 亚洲成人电影无码| 在线观看免费黄色视频| 亚洲欧美视频一区| 亚洲精品天堂无码AV片| 一级黄色片免费| 在线看片国产| 日韩性爱视频在线观看| av在线观看网站| 黄色小视频在线观看| 五月婷婷成人| 露脸丨91丨九色露脸| 青青草大香蕉伊人| 欧美一级a| 综合婷婷久久| 一牛影视精品av| 伊人五月天激情| 亚洲成人一二三区| 黄色视频在线观看网站| 91伊人在线| 免费一级婬片AA片观看| 99综合视频| 欧美成人综合色| 免费a在线| 久久偷拍网| 国产精品久久久久久久久久二区三区 | 影音先锋成人网| 亚洲AV成人无码精品| 三级片在线看片AV| 男人天堂色男人| 欧美日韩肏屄视频| 天天操天天干天天日| 日韩黄色片网站| 色婷婷亚洲色| 无码人妻丰满熟妇| 日韩免费不卡| 69成人精品视频| 国产h在线观看| 成人一区在线观看| 女人的天堂AAA| 蜜桃BBwBBWBBwBBw| 另类老妇极品BBWBBw| 在线观看av网站中文字幕| 拍真实国产伦偷精品| 18精品爽视频| 波多野结衣视频在线播放| 亚洲天码中字| 99久久久精品久久久久久| 久9热| 女人18片毛片60分钟黃菲菲| 99久免费视频| 日韩经典视频在线播放| 国内免费AV| 永久免费AV无码| www.青青草| 日韩欧美操| 久操免费在线观看| 欧美日韩在线观看视频| 91免费在线看| 日欧内射| 黄色插逼视频| 天天操中文字幕| 先锋影音av资源站| 黄色一级电影网| 俺去也| 黄色日韩| 欧美日韩亚洲综合| 中文无码毛片| 欧美高清无码| 免费的操逼视频| 狼人一区二区| 黄片WWW| 91丝袜一区二区| 国产精品成人午夜福利| 精品尤物| 日韩不卡视频在线观看| 高清欧美日韩第一摸| 日韩午夜精品| 人妻无码一区二区| 国精品无码人妻一区二区三区| 亚洲天堂女| 奇米av| 久久久久久久无码| 青娱乐精品在线视频| AA片免费| 国产中文| 狠狠干免费视频| av免费网址| 在线无码中文字幕| 国产91小视频| 欧美经典自拍狼友| 午夜福利欧美| 一级一级一级做a免费一级做a| 91视频第一页| 丰满人妻一区二区三区精品高清 | 亚洲精品成人网站| 国产理论视频在线观看| 这里只有精品视频| 欧美午夜福利在线观看| V在线| 国产又大又粗又黄| 亚洲无码一级视频| 久久婷婷影院| 伊人大香蕉视频| 成人免费a片| 天天综合网久久综合网| 午夜AV在线免费观看| 无码在线观看免费| 色五月婷婷小说| 波多野结衣vs黑人巨大| 操逼综合网| 午夜福利码一区二区| 日韩成人高清无码| 亚洲五月天婷婷| 一本色道久久综合| 香蕉成人网站| 五月婷婷视频在线观看| 国产精品国产三级片| 怡春院中文字幕| 日韩18禁| 高清国产AV| 97国产精品视频| 久草中文网| 久久新视频| 国产手机拍视频推荐2023| 久久久久亚洲AV无码专区成人| 亚洲少妇网| 亚洲东方在线| 日本一级按摩片免费观看| 无码一区二区三| 中文字字幕在线中文乱码电影| 69AV在线视频| 视色网| 亚洲精品成人7777777| 综合色婷婷一区二区亚洲欧美国产| 国产男女视频| 一区二区三区观看| 麻豆视频免费观看| 91麻豆视频在线观看| 人人摸人人看人人草| 人人妻日日摸狠狠躁视频| 91av一区二区| 久久精品无码一区二区无码性色| 天堂无码视频在线播放| 日韩人妻无码网站| 国产三级国产三级国产普通话| 天天操天天干欧美精品| 狠狠干高清成人二区三区| 爆操太妹| 久久久一区二区三区四曲免费听| 亚洲一级黄片| 伊人在线视频| 一区二区三区无码视频| 日本人妻中文字幕| 亚洲中文字| 国产免费一区二区在线A片视频| 亚洲无码性爱| 17.3c一起起草| 天天综合久久| 91精品婷婷国产综合久久韩漫| 三级A片| 国产黄色大片| 亚洲天堂一级片| 天天日天天操天天| A级黄色网| 欧美综合视频在线观看| 热久久在线| 97天天操| av一区在线观看| 日韩成人av在线| 国产麻豆精品成人免费视频| 91香蕉在线视频| 操逼三级| 亚洲视频免费在线播放|