日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

数据库

redis发布订阅c接口_Redis 发布/订阅机制原理分析

發布時間:2025/3/12 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis发布订阅c接口_Redis 发布/订阅机制原理分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序:使用訂閱發布功能的時候想查一下客戶端是如何接收消息的(客戶端訂閱了頻道之后也會注冊一個回調函數,服務端publish消息之后回調函數會獲取到消息。這塊沒看到太多內容只有C++的源碼),無意中查到這篇博客寫的簡單明了。轉一下也做一個記錄。

這些命令被廣泛用于構建即時通信應用,比如網絡聊天室(chatroom)和實時廣播、實時提醒等。

本文通過分析 Redis 源碼里的 pubsub.c 文件,了解發布和訂閱機制的底層實現,籍此加深對 Redis 的理解。

訂閱、發布和退訂

在開始研究源碼之前,不妨先來回顧一下幾個相關命令的使用方式。

PUBLISH 命令用于向給定的頻道發送信息,返回值為接收到信息的訂閱者數量:

redis> PUBLISH treehole "top secret here ..."

(integer) 0

redis> PUBLISH chatroom "hi?"

(integer) 1

SUBSCRIBE 命令訂閱給定的一個或多個頻道:

redis> SUBSCRIBE chatroom

Reading messages... (press Ctrl-C to quit)

1) "subscribe" # 訂閱反饋

2) "chatroom" # 訂閱的頻道

3) (integer) 1 # 目前客戶端已訂閱頻道/模式的數量

1) "message" # 信息

2) "chatroom" # 發送信息的頻道

3) "hi?" # 信息內容

SUBSCRIBE 的返回值當中, 1) 為 subscribe 的是訂閱的反饋信息,而 1) 為 message 的則是訂閱的頻道所發送的信息。

SUBSCRIBE 還可以訂閱多個頻道,這樣一來它接收到的信息就可能來自多個頻道:

redis> SUBSCRIBE chatroom talk-to-jack

Reading messages... (press Ctrl-C to quit)

1) "subscribe" # 訂閱 chatroom 的反饋

2) "chatroom"

3) (integer) 1

1) "subscribe" # 訂閱 talk-to-jack 的反饋

2) "talk-to-jack"

3) (integer) 2

1) "message" # 來自 chatroom 的消息

2) "chatroom"

3) "yahoo"

1) "message" # 來自 talk-to-peter 的消息

2) "talk-to-jack"

3) "Goodmorning, peter."

PSUBSCRIBE 提供了一種訂閱符合給定模式的所有頻道的方法,比如說,使用 it.* 為輸入,就可以訂閱所有以 it. 開頭的頻道,比如 it.news 、 it.blog 、 it.tweets ,諸如此類:

redis> PSUBSCRIBE it.*

Reading messages... (press Ctrl-C to quit)

1) "psubscribe"

2) "it.*"

3) (integer) 1

1) "pmessage"

2) "it.*" # 匹配的模式

3) "it.news" # 消息的來源頻道

4) "Redis 2.6rc5 release" # 消息內容

1) "pmessage"

2) "it.*"

3) "it.blog"

4) "Why NoSQL matters"

1) "pmessage"

2) "it.*"

3) "it.tweet"

4) "@redis: when will the 2.6 stable release?"

當然, PSUBSCRIBE 也可以接受多個參數,從而匹配多種模式。

最后, UNSUBSCRIBE 命令和 PUNSUBSCRIBE 負責退訂給定的頻道或模式。

發布和訂閱機制

當一個客戶端通過 PUBLISH 命令向訂閱者發送信息的時候,我們稱這個客戶端為發布者(publisher)。

而當一個客戶端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的時候,我們稱這個客戶端為訂閱者(subscriber)。

為了解耦發布者(publisher)和訂閱者(subscriber)之間的關系,Redis 使用了 channel (頻道)作為兩者的中介 —— 發布者將信息直接發布給 channel ,而 channel 負責將信息發送給適當的訂閱者,發布者和訂閱者之間沒有相互關系,也不知道對方的存在:

知道了發布和訂閱的機制之后,接下來就可以開始研究具體的實現了,我們從 Redis 的訂閱命令開始說起。

SUBSCRIBE 命令的實現

前面說到,Redis 將所有接受和發送信息的任務交給 channel 來進行,而所有 channel 的信息就儲存在 redisServer 這個結構中:

struct redisServer {

// 省略 ...

dict *pubsub_channels; // Map channels to list of subscribed clients

// 省略 ...

};

pubsub_channels 是一個字典,字典的鍵就是一個個 channel ,而字典的值則是一個鏈表,鏈表中保存了所有訂閱這個 channel 的客戶端。

舉個例子,如果在一個 redisServer 實例中,有一個叫做 news 的頻道,這個頻道同時被client_123 和 client_456 兩個客戶端訂閱,那么這個 redisServer 結構看起來應該是這樣子:

可以看出,實現 SUBSCRIBE 命令的關鍵,就是將客戶端添加到給定 channel 的訂閱鏈表中。

函數 pubsubSubscribeChannel 是 SUBSCRIBE 命令的底層實現,它完成了將客戶端添加到訂閱鏈表中的工作:

// 訂閱指定頻道

// 訂閱成功返回 1 ,如果已經訂閱過,返回 0

int pubsubSubscribeChannel(redisClient *c, robj *channel) {

struct dictEntry *de;

list *clients = NULL;

int retval = 0;

/* Add the channel to the client -> channels hash table */

// dictAdd 在添加新元素成功時返回 DICT_OK

// 因此這個判斷句表示,如果新訂閱 channel 成功,那么 。。。

if (dictAdd(c->pubsub_channels,channel,NULL) == DICT_OK) {

retval = 1;

incrRefCount(channel);

/* Add the client to the channel -> list of clients hash table */

// 將 client 添加到訂閱給定 channel 的鏈表中

// 這個鏈表是一個哈希表的值,哈希表的鍵是給定 channel

// 這個哈希表保存在 server.pubsub_channels 里

de = dictFind(server.pubsub_channels,channel);

if (de == NULL) {

// 如果 de 等于 NULL

// 表示這個客戶端是首個訂閱這個 channel 的客戶端

// 那么創建一個新的列表, 并將它加入到哈希表中

clients = listCreate();

dictAdd(server.pubsub_channels,channel,clients);

incrRefCount(channel);

} else {

// 如果 de 不為空,就取出這個 clients 鏈表

clients = dictGetVal(de);

}

// 將客戶端加入到鏈表中

listAddNodeTail(clients,c);

}

/* Notify the client */

addReply(c,shared.mbulkhdr[3]);

addReply(c,shared.subscribebulk);

// 返回訂閱的頻道

addReplyBulk(c,channel);

// 返回客戶端當前已訂閱的頻道和模式數量的總和

addReplyLongLong(c,dictSize(c->pubsub_channels)+listLength(c->pubsub_patterns));

return retval;

}

PSUBSCRIBE 命令的實現

除了直接訂閱給定 channel 外,還可以使用 PSUBSCRIBE 訂閱一個模式(pattern),訂閱一個模式等同于訂閱所有匹配這個模式的 channel 。

和 redisServer.pubsub_channels 屬性類似, redisServer.pubsub_patterns 屬性用于保存所有被訂閱的模式,和 pubsub_channels 不同的是, pubsub_patterns 是一個鏈表(而不是字典):

struct redisServer {

// 省略 ...

list *pubsub_patterns; // A list of pubsub_patterns

// 省略 ...

};

pubsub_patterns 的每一個節點都是一個 pubsubPattern 結構的實例,它保存了被訂閱的模式,以及訂閱這個模式的客戶客戶端:

typedef struct pubsubPattern {

redisClient *client;

robj *pattern;

} pubsubPattern;

舉個例子,假設在一個 redisServer 實例中,有一個叫做 news.* 的模式同時被客戶端client_789 和 client_999 訂閱,那么這個 redisServer 結構看起來應該是這樣子:

現在可以知道,實現 PSUBSCRIBE 命令的關鍵,就是將客戶端和訂閱的模式添加到redisServer.pubsub_patterns 當中。

pubsubSubscribePattern 是 PSUBSCRIBE 的底層實現,它將客戶端和所訂閱的模式添加到redisServer.pubsub_patterns 當中:

// 訂閱指定模式

// 訂閱成功返回 1 ,如果已經訂閱過,返回 0

int pubsubSubscribePattern(redisClient *c, robj *pattern) {

int retval = 0;

// 向 c->pubsub_patterns 中查找指定 pattern

// 如果返回值為 NULL ,說明這個 pattern 還沒被這個客戶端訂閱過

if (listSearchKey(c->pubsub_patterns,pattern) == NULL) {

retval = 1;

// 添加 pattern 到客戶端 pubsub_patterns

listAddNodeTail(c->pubsub_patterns,pattern);

incrRefCount(pattern);

// 將 pattern 添加到服務器

pubsubPattern *pat;

pat = zmalloc(sizeof(*pat));

pat->pattern = getDecodedObject(pattern);

pat->client = c;

listAddNodeTail(server.pubsub_patterns,pat);

}

/* Notify the client */

addReply(c,shared.mbulkhdr[3]);

addReply(c,shared.psubscribebulk);

// 返回被訂閱的模式

addReplyBulk(c,pattern);

// 返回客戶端當前已訂閱的頻道和模式數量的總和

addReplyLongLong(c,dictSize(c->pubsub_channels)+listLength(c->pubsub_patterns));

return retval;

}

PUBLISH 命令的實現

使用 PUBLISH 命令向訂閱者發送消息,需要執行以下兩個步驟:

1) 使用給定的頻道作為鍵,在 redisServer.pubsub_channels 字典中查找記錄了訂閱這個頻道的所有客戶端的鏈表,遍歷這個鏈表,將消息發布給所有訂閱者。

2) 遍歷 redisServer.pubsub_patterns 鏈表,將鏈表中的模式和給定的頻道進行匹配,如果匹配成功,那么將消息發布到相應模式的客戶端當中。

舉個例子,假設有兩個客戶端分別訂閱 it.news 頻道和 it.* 模式,當執行命令PUBLISH it.news "hello moto" 的時候, it.news 頻道的訂閱者會在步驟 1 收到信息,而當PUBLISH 進行到步驟 2 的時候, it.* 模式的訂閱者也會收到信息。

PUBLISH 命令的實際實現由 pubsubPublishMessage 函數完成,它的完整定義如下:

// 發送消息

int pubsubPublishMessage(robj *channel, robj *message) {

int receivers = 0;

struct dictEntry *de;

listNode *ln;

listIter li;

/* Send to clients listening for that channel */

// 向所有頻道的訂閱者發送消息

de = dictFind(server.pubsub_channels,channel);

if (de) {

list *list = dictGetVal(de); // 取出所有訂閱者

listNode *ln;

listIter li;

// 遍歷所有訂閱者, 向它們發送消息

listRewind(list,&li);

while ((ln = listNext(&li)) != NULL) {

redisClient *c = ln->value;

addReply(c,shared.mbulkhdr[3]);

addReply(c,shared.messagebulk);

addReplyBulk(c,channel); // 打印頻道名

addReplyBulk(c,message); // 打印消息

receivers++; // 更新接收者數量

}

}

/* Send to clients listening to matching channels */

// 向所有被匹配模式的訂閱者發送消息

if (listLength(server.pubsub_patterns)) {

listRewind(server.pubsub_patterns,&li); // 取出所有模式

channel = getDecodedObject(channel);

while ((ln = listNext(&li)) != NULL) {

pubsubPattern *pat = ln->value; // 取出模式

// 如果模式和 channel 匹配的話

// 向這個模式的訂閱者發送消息

if (stringmatchlen((char*)pat->pattern->ptr,

sdslen(pat->pattern->ptr),

(char*)channel->ptr,

sdslen(channel->ptr),0)) {

addReply(pat->client,shared.mbulkhdr[4]);

addReply(pat->client,shared.pmessagebulk);

addReplyBulk(pat->client,pat->pattern); // 打印被匹配的模式

addReplyBulk(pat->client,channel); // 打印頻道名

addReplyBulk(pat->client,message); // 打印消息

receivers++; // 更新接收者數量

}

}

decrRefCount(channel); // 釋放用過的 channel

}

return receivers; // 返回接收者數量

}

UNSUBSCRIBE 和 PUNSUBSCRIBE 的實現

UNSUBSCRIBE 和 PUNSUBSCRIBE 分別是 SUBSCRIBE 和 PSUBSCRIBE 的反操作,如果明白了SUBSCRIBE 和 PSUBSCRIBE 的工作機制的話,應該不難理解這兩個反操作的原理,所以這里就省略詳細的分析了,有興趣的可以直接看代碼。

小節

Redis 的 pubsub 機制的分析就到此結束了,跟往常一樣,帶有注釋的完整 pubsub.c 文件可以到原作者的 GITHUB 上找:?https://github.com/huangz1990/reading_redis_source

總結

以上是生活随笔為你收集整理的redis发布订阅c接口_Redis 发布/订阅机制原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

中文国产在线观看 | 视频成人永久免费视频 | 99久久99久久 | 黄色av一区二区三区 | 激情在线免费视频 | 久操97 | 97精品欧美91久久久久久 | 黄色片软件网站 | 国产精品二区三区 | 深爱激情av| 国产精品国内免费一区二区三区 | 狠狠狠综合 | 成人在线免费观看视视频 | 色小说av | 91麻豆精品国产91久久久久 | 99久久精品久久久久久清纯 | 日本黄色大片儿 | 91精品国产91久久久久 | 亚洲欧美精品一区 | 久久不射电影院 | 日韩av在线看 | 免费视频黄| 一级免费黄视频 | www.午夜色.com| 精品美女在线观看 | 久久网页| 三级黄色理论片 | 亚洲精品久久久蜜桃直播 | 五月婷婷六月丁香 | 日韩久久激情 | 综合亚洲视频 | 免费在线成人av | 97超级碰碰碰视频在线观看 | 国产一级视频 | 99精品视频在线看 | 久久夜夜操 | 不卡国产视频 | 99精品视频一区二区 | 欧美日韩国产一区二区三区在线观看 | 国产精品久久久久久久久费观看 | 国产黄色网| 亚洲伊人天堂 | 国产91勾搭技师精品 | 在线激情电影 | 二区三区在线 | 国产精品午夜久久久久久99热 | 天天操婷婷 | 久久99九九99精品 | 在线一区二区三区 | 中文av在线天堂 | 国产精品视频线看 | 在线激情av电影 | 欧美日韩视频免费看 | 亚洲jizzjizz日本少妇 | 亚洲精品动漫成人3d无尽在线 | 国产午夜在线 | 伊人亚洲精品 | 久久久99久久 | 久久亚洲美女 | 亚洲综合小说 | 日本爱爱片 | 久久久免费少妇 | 国产一级精品在线观看 | 在线一二区 | 精品国产乱码一区二 | 在线看欧美 | 国产一区二区三区免费在线观看 | 天天翘av| 亚洲爱视频 | 最近中文字幕免费大全 | 欧美在线一二区 | 99国内精品 | 欧美黄色免费 | 久久综合九色欧美综合狠狠 | 91精品啪在线观看国产 | 精品国产一区二区三区久久久 | 欧美日韩xxx| 人人要人人澡人人爽人人dvd | 日韩午夜剧场 | 视频国产在线 | 亚洲精品视频在 | 久久伊人91 | ww亚洲ww亚在线观看 | 欧美精品亚州精品 | 中文字幕在线日亚洲9 | 在线观看不卡的av | 天堂va欧美va亚洲va老司机 | 久久久福利| 碰超在线 | 9幺看片| 91成人观看| 亚洲第一香蕉视频 | aaa日本高清在线播放免费观看 | www亚洲精品 | 日日草av | 亚洲精品播放 | 激情综合网五月激情 | 久草在线看片 | 欧美日韩伦理一区 | 青青河边草免费 | 98久9在线 | 免费 | 99爱精品视频 | 国产一区在线精品 | 成人久久18免费网站图片 | 免费看一及片 | 成人羞羞视频在线观看免费 | 日韩欧美v | 少妇做爰k8经典 | 久久久久欠精品国产毛片国产毛生 | 碰超在线观看 | 国产成人一区二区啪在线观看 | 五月婷婷开心 | 国产最新在线视频 | 亚洲香蕉视频 | 色偷偷88888欧美精品久久久 | 99自拍视频在线观看 | 成人在线播放av | 国产精品久久毛片 | 国产色影院 | 精品国产成人在线影院 | 久久久久久毛片精品免费不卡 | 日韩色中色 | 亚洲精品乱码久久久久v最新版 | 成人小视频在线观看免费 | 久草久热 | 久久久精品国产一区二区电影四季 | 免费特级黄毛片 | 亚洲一区二区观看 | 免费毛片一区二区三区久久久 | 香蕉久久久久 | 视频一区二区精品 | 午夜精品久久久久久久久久久久久久 | 天天插狠狠干 | 97超碰香蕉 | 欧美一级看片 | 国产精品美| 天堂网中文在线 | 夜夜骑日日操 | 玖操 | 免费视频久久久久 | 亚洲美女在线一区 | 国产亚洲人成网站在线观看 | 婷婷电影在线观看 | 99视屏| 国产生活一级片 | 狠狠操狠狠 | av福利在线 | 美女视频又黄又免费 | 欧美少妇18p | 日韩经典一区二区三区 | 亚洲人成免费网站 | 欧美色图狠狠干 | 99亚洲天堂| www天天干com | 四虎成人精品永久免费av九九 | av一级在线| 中日韩欧美精彩视频 | 久久国产热视频 | 日本黄网站 | 超碰免费在线公开 | 日韩在线一区二区免费 | 国产一区二区日本 | 永久免费观看视频 | 日韩精品一区二区在线观看视频 | 久久久精品国产免费观看一区二区 | 国产精品久久久网站 | 久久久精品国产一区二区 | 中文字幕免费在线 | 欧美午夜性生活 | 国产精品涩涩屋www在线观看 | 色 中文字幕 | 成人免费观看完整版电影 | 九九久久国产精品 | 亚洲精品456在线播放乱码 | 久久99国产一区二区三区 | 国产视频99 | 婷婷五月色综合 | 在线观看资源 | 国产免费精彩视频 | www亚洲国产 | 亚洲视屏一区 | 69av免费视频| 国产91亚洲 | 91秒拍国产福利一区 | 五月开心激情 | 精品在线视频观看 | 亚洲 欧美变态 另类 综合 | 国产区久久 | 91在线资源 | 日韩欧美国产免费播放 | 国产精品wwwwww | 欧美黄污视频 | 日韩电影在线观看中文字幕 | 久久久高清免费视频 | 久久久久免费网站 | 日韩高清免费在线 | 国产精品欧美一区二区三区不卡 | 久久久国产一区二区 | 色播亚洲婷婷 | 国产99爱 | 国产午夜精品一区二区三区嫩草 | 久久香蕉影视 | 国产成人一区二区三区在线观看 | 夜夜夜夜夜夜操 | 国产糖心vlog在线观看 | 韩国av一区二区 | 久久av一区二区三区亚洲 | 97精品国产一二三产区 | 99爱精品视频 | 中文字幕一区二 | 在线观看视频免费播放 | 亚洲国产精品99久久久久久久久 | 日韩av资源站 | 九九色视频 | 91精品国产高清自在线观看 | 精品国产伦一区二区三区观看体验 | 69视频在线 | 国产精品mv | 在线激情影院一区 | 国产成人一级电影 | 激情亚洲综合在线 | 超碰97中文 | 久久久久日本精品一区二区三区 | 亚洲精品玖玖玖av在线看 | 97国产小视频 | 欧美日比视频 | 国产欧美综合在线观看 | 午夜国产影院 | 国产精品白丝jk白祙 | 麻豆久久一区二区 | 亚洲欧美国产精品 | 国产性天天综合网 | 天天躁日日躁狠狠躁av中文 | 国产成人av一区二区三区在线观看 | 天天天色综合a | 亚洲一区二区精品 | 国产精品扒开做爽爽的视频 | 久久精品草 | 国产精品手机在线 | 国产尤物在线观看 | 久久国产亚洲精品 | 色九九影院 | 亚洲成人网在线 | 视频一区久久 | 97人人模人人爽人人喊网 | 国产精品一区久久久久 | 黄色毛片在线 | a视频免费 | 久久av一区二区三区亚洲 | 日韩高清无线码2023 | 欧美一区二区在线免费看 | 麻豆视频免费版 | 国产色 在线 | 免费高清在线视频一区· | 特级毛片在线 | 91激情视频在线观看 | 精品视频99 | 最近最新最好看中文视频 | 国产黄色成人 | 国产99久久久久 | 九色视频网站 | 五月天婷婷在线播放 | 日本精品视频免费观看 | 91精品国产92久久久久 | 亚洲最大免费成人网 | 91精品毛片 | www.99热精品 | 国产精品久久久久三级 | 91中文字幕视频 | 日本三级大片 | 91网页版在线观看 | av中文国产 | 国产一区在线播放 | 欧美精品在线观看一区 | 国产一级片在线播放 | 午夜美女视频 | 亚洲电影影音先锋 | 黄视频色网站 | 久久无码av一区二区三区电影网 | 国产尤物在线 | 日本黄色黄网站 | 日韩在线观看一区二区三区 | 久久久免费看视频 | 在线免费视 | 日韩在线中文字幕视频 | 日韩在线视频免费播放 | www欧美xxxx | 婷婷色av| 亚洲精品视频在线观看免费 | 亚洲电影影音先锋 | 亚洲人天堂 | 色中文字幕在线观看 | 99国产一区 | 91麻豆精品国产91久久久久久 | 中文字幕 国产视频 | 午夜国产在线观看 | 免费网站看av片 | 中文字幕一区二区在线播放 | 亚洲黄色激情小说 | 毛片美女网站 | 久久久久久久久久久精 | 国产 在线观看 | 99久久超碰中文字幕伊人 | 国产精品一区二区62 | 久久视频这里有久久精品视频11 | 天天干视频在线 | 西西www4444大胆在线 | 久久久免费高清视频 | 欧美日韩啪啪 | 成人一级在线 | 国产成年免费视频 | 久久久久久看片 | 91精品中文字幕 | av在线专区| 亚洲成人第一区 | 精品一区二区三区四区在线 | 天堂资源在线观看视频 | 国产午夜精品一区二区三区嫩草 | 色插综合 | 国产精品一区二区62 | 97精品国产91久久久久久久 | 日韩在线视频观看 | 亚洲精品久久久蜜臀下载官网 | 久久综合丁香 | 99视频精品 | 免费试看一区 | 国产最新视频在线观看 | 久久国产精品一区二区 | 成人网看片 | 国产成人av免费在线观看 | 四川bbb搡bbb爽爽视频 | 精品亚洲欧美无人区乱码 | 视频成人免费 | 亚洲aⅴ在线 | 中文字幕999 | 久久久www成人免费毛片 | 中文在线a天堂 | 精品久久久久国产免费第一页 | 美女网站在线看 | 久久久网址 | 天干啦夜天干天干在线线 | 激情综合五月婷婷 | 一级黄色在线视频 | 三级黄免费看 | 97国产精品一区二区 | 一区二区视频电影在线观看 | 成年人免费电影在线观看 | 精品女同一区二区三区在线观看 | 国产老太婆免费交性大片 | 国产中文字幕在线 | 久久精品视频免费 | 日韩av片免费在线观看 | 中文字幕亚洲高清 | 国产精品 欧美 日韩 | 天天射天天操天天 | 999精品| 国产精品一区二区av日韩在线 | 亚州av网站 | 国产高清在线视频 | 日韩欧美在线中文字幕 | 日韩久久一区 | 丁香婷婷激情五月 | 国内精品久久久久久久 | 国产99久久久国产精品 | 蜜桃视频精品 | www.久久视频| 偷拍福利视频一区二区三区 | 天天操天天射天天添 | 国产精品永久久久久久久www | 天天爱天天色 | 九九在线视频 | 91av在线电影 | 日韩夜夜爽 | 日韩一区二区三区视频在线 | 久久一线 | 在线观看久草 | 2023av| 久操视频在线播放 | 911久久香蕉国产线看观看 | 中文字幕中文字幕在线一区 | 韩国av一区二区 | 国产流白浆高潮在线观看 | 少妇搡bbbb搡bbb搡69 | 在线亚洲激情 | 黄色成人av | 婷婷久月 | 成年人电影免费在线观看 | 亚洲成人av在线电影 | 日韩午夜三级 | 久久无码av一区二区三区电影网 | 国产99久久精品一区二区永久免费 | 日韩久久精品一区二区三区 | 人人藻人人澡人人爽 | 中文在线亚洲 | av夜夜操 | 午夜.dj高清免费观看视频 | 国产精品麻豆三级一区视频 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 在线视频免费观看 | 欧美日韩免费一区二区三区 | 操操日日 | 亚洲日本色 | 99re8这里有精品热视频免费 | 久久午夜电影院 | 国产在线999 | 亚洲成人黄色 | 成人av在线资源 | 波多野结依在线观看 | 99热亚洲精品 | 成人一级视频在线观看 | 中文字幕国产精品一区二区 | 久久精品一区二区国产 | 在线小视频| 日韩网站免费观看 | 日韩欧美在线观看一区 | 黄色网址中文字幕 | 天天干,天天射,天天操,天天摸 | 97色婷婷成人综合在线观看 | 久久视频这里有精品 | 成人黄色小说在线观看 | 久草精品视频在线播放 | 亚洲精品在线观看中文字幕 | 日韩大陆欧美高清视频区 | 黄色在线免费观看网址 | 国产亚洲精品久久久久久无几年桃 | 日韩精品中文字幕一区二区 | 人人爽网站 | 黄色国产区 | 黄色成品视频 | 碰超在线 | 成人在线观看免费 | 91精品久久久久久综合五月天 | 精品久久久久亚洲 | 国产最顶级的黄色片在线免费观看 | 色婷婷88av视频一二三区 | 中文字幕二区 | 玖玖视频精品 | 久章草在线 | 成人午夜av电影 | 天天操夜夜操天天射 | 欧美专区日韩专区 | 欧美一级视频在线观看 | 91精品网站在线观看 | 五月婷婷国产 | 狠狠躁夜夜躁人人爽视频 | 视频一区二区三区视频 | 天天爱综合 | 亚洲麻豆精品 | 91视频a | 亚洲 欧美变态 另类 综合 | 久久久一本精品99久久精品66 | 国产999精品久久久久久绿帽 | www.夜夜骑.com | 久久久久国产一区二区 | 成人午夜影视 | 国产精品欧美激情在线观看 | 97成人在线观看 | 嫩草伊人久久精品少妇av | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产四虎在线 | 国产98色在线 | 日韩 | 亚洲高清视频在线 | 欧美一区影院 | 久久久www成人免费毛片 | 国产精品久久久久久久久软件 | 国产资源在线播放 | 日韩欧美69 | 黄色三级在线观看 | 首页国产精品 | 2022久久国产露脸精品国产 | 人人射人人澡 | 日韩成人在线一区二区 | 九九热在线精品 | 香蕉视频在线免费 | 亚洲涩涩涩涩涩涩 | 免费日韩一级片 | 91精品色 | 欧美有色 | 国产蜜臀av | 久久久免费av| 91网页版免费观看 | www麻豆视频 | 91在线视频观看 | 日本h在线播放 | 久久在线免费视频 | 在线观看视频你懂得 | 亚洲一区美女视频在线观看免费 | 在线看91| 草久中文字幕 | 黄色天堂在线观看 | 男女激情片在线观看 | 97日日| 99这里有精品 | 中文字幕在线观看你懂的 | 久久成人午夜视频 | 日批视频国产 | 成人在线电影观看 | 久久午夜视频 | 久久久久久99精品 | 亚州人成在线播放 | 国产区网址 | 一级a性色生活片久久毛片波多野 | 高清不卡一区二区在线 | 亚洲va男人天堂 | 亚洲精品2区 | 久久久久久国产精品 | 国产精品一区二区三区99 | 国产特级毛片aaaaaa高清 | 久艹在线播放 | 国产精品免费观看视频 | 天堂av在线网| 亚洲91精品在线观看 | 久久人人爽人人爽人人片 | 国产成人精品一二三区 | 日韩黄色免费在线观看 | 日本不卡一区二区三区在线观看 | 又黄又爽的视频在线观看网站 | 欧美激情综合五月色丁香 | 97在线观看免费高清 | 欧美高清视频不卡网 | 成年人三级网站 | 91高清免费在线观看 | 欧美黄色成人 | 亚洲高清视频在线观看免费 | 欧美 日韩 视频 | 免费网站看v片在线a | 色诱亚洲精品久久久久久 | 色www.| 天天视频亚洲 | 97精品视频在线 | 黄色国产在线观看 | 99久久精品免费一区 | 五月天激情综合 | 日韩免费一级a毛片在线播放一级 | 亚洲精品自在在线观看 | 国产欧美日韩精品一区二区免费 | 九九视频网站 | 婷婷精品在线视频 | 欧美 亚洲 另类 激情 另类 | 精品99视频 | 麻豆视频www | 天天干天天干天天干天天干天天干天天干 | 91原创在线观看 | 五月婷婷六月丁香在线观看 | 中文字幕一区二 | 黄色免费网站大全 | 中字幕视频在线永久在线观看免费 | 97av影院| 2019精品手机国产品在线 | 国产精品一区二区三区四 | 亚洲日本三级 | av中文天堂在线 | 天天夜操 | 在线a人片免费观看视频 | 日韩欧美一区二区不卡 | 999久久久国产精品 高清av免费观看 | 久久久91精品国产一区二区三区 | 视频在线观看日韩 | 色婷婷88av视频一二三区 | 在线亚洲激情 | 久久人视频 | 天堂网一区二区 | 欧美激情第十页 | 黄色免费电影网站 | 国产第一二区 | 成人免费大片黄在线播放 | 成人a级大片 | 丁香婷婷色月天 | www.狠狠色.com| 亚洲精品欧美精品 | 免费国产黄线在线观看视频 | 国产精品久久久久久久久久久久午夜 | 久久久久 免费视频 | 婷婷色在线 | 草久视频在线观看 | 亚洲精品国产精品国自产 | 亚洲一区视频在线播放 | 波多野结依在线观看 | 日韩在线 一区二区 | 伊在线视频 | 97超视频在线观看 | 亚洲国产成人精品久久 | 日韩v欧美v日本v亚洲v国产v | 欧美日韩亚洲在线 | 婷香五月 | 亚洲精品午夜aaa久久久 | 亚洲日本在线视频观看 | 成人wwwxxx视频 | 香蕉视频在线观看免费 | a成人v在线 | 亚洲精品综合在线观看 | 天天躁日日躁狠狠躁av麻豆 | 日韩专区 在线 | 日本mv大片欧洲mv大片 | 精品久久久成人 | 精品一区在线 | 五月色综合 | 97av在线视频免费播放 | 日韩精品专区在线影院重磅 | 免费看一级黄色大全 | 成人午夜性影院 | 亚洲精品视频在线免费 | a v在线观看 | 久草在线观看 | 国产精品久久久久久av | 中文字幕电影在线 | 久久精品一区八戒影视 | 欧美激情精品 | 69视频网站 | 91精品在线免费观看 | 91日韩在线视频 | 国产91影院 | 亚洲精品国偷自产在线91正片 | 国产色黄网站 | 国产成人黄色在线 | 国产精品热视频 | 欧美激情第一区 | 中文字幕高清在线播放 | 国产夫妻自拍av | 国产69精品久久99不卡的观看体验 | 国产91在线免费视频 | 99久久精品国产系列 | 97人人精品 | 免费看的黄色的网站 | 国产99久久久国产精品成人免费 | 蜜臀av性久久久久av蜜臀三区 | 日韩高清免费在线 | 手机在线观看国产精品 | 国产高清亚洲 | 国产不卡一 | 色大片免费看 | 欧美日韩在线视频观看 | a在线免费 | 国内精品久久久久久久影视简单 | 亚洲激情 在线 | 久久久久久黄 | 久久久亚洲网站 | 日韩精品视频一二三 | 2021国产精品视频 | 久久久久久久av麻豆果冻 | 在线免费观看黄色av | 国产精品久久在线 | www国产亚洲精品久久网站 | 99在线视频网站 | 久久艹国产视频 | 一区二区电影在线观看 | 日韩av不卡在线观看 | 亚洲精品国产精品国自产在线 | 激情av综合| 久久久久久久久久久久电影 | 九九热只有这里有精品 | 久久 一区 | 97人人射 | 999久久久久久久久久久 | 欧美日韩精品在线视频 | 深夜视频久久 | 中文字幕av在线电影 | 天天射天天拍 | 成人a在线| 精品久久久久久久久中文字幕 | 国产三级久久久 | a天堂最新版中文在线地址 久久99久久精品国产 | 色婷婷在线播放 | 色婷五月天 | 精品国产亚洲一区二区麻豆 | 在线观看国产成人av片 | 久久精品精品电影网 | 玖玖视频国产 | 国产精品wwwwww | 亚洲精品一区二区三区四区高清 | 国产91对白在线播 | 91入口在线观看 | 中文字幕在线观看第二页 | 黄色一级网 | 国产探花 | 久久激情综合网 | 超碰成人免费电影 | 免费色视频网站 | 日韩中文字幕亚洲一区二区va在线 | 亚洲国产中文字幕 | 在线播放 日韩专区 | 国精产品永久999 | 97涩涩视频 | 麻豆视频一区 | 精品久久网 | 成人久久精品视频 | 国产成人精品一区二区在线 | 51久久成人国产精品麻豆 | 97在线观视频免费观看 | 久久精品看 | 狠狠色狠狠色综合日日92 | 国内偷拍精品视频 | 久久不射电影网 | 成人国产网站 | 免费成人av网站 | 欧美一级视频免费 | 日日操日日插 | 国产成人av在线 | 国产精品视频免费观看 | 亚洲成人网在线 | 日韩一二三区不卡 | 成人电影毛片 | 国产美女精品人人做人人爽 | 久久免费视频3 | 人人干干人人 | 91精品国自产拍天天拍 | 中文字幕字幕中文 | www天天干 | 欧美性受极品xxxx喷水 | 日本大片免费观看在线 | 国内久久 | 国产精品欧美精品 | 久久免费视频4 | 一区二区三区在线观看免费 | 白丝av在线 | 91在线观看视频 | 国产精品久久久久久久久岛 | 爱情影院aqdy鲁丝片二区 | 久久精品79国产精品 | 粉嫩av一区二区三区四区 | 色综合久久久久综合 | www.97视频| 综合色婷婷 | 国产视频中文字幕 | 日韩精品在线视频 | 最新免费中文字幕 | 五月网婷婷 | 天天舔天天搞 | 伊人五月在线 | 国产欧美在线一区二区三区 | 狠狠干在线播放 | 欧美最新另类人妖 | 国产精品男女视频 | 婷婷色中文网 | 一区二区三区四区精品视频 | 在线观看免费版高清版 | 最新av中文字幕 | 国产品久精国精产拍 | 成人91av| 97激情影院 | 精品国内自产拍在线观看视频 | va视频在线 | 国产精品二区三区 | 激情网站免费观看 | 成人影片免费 | 久久视频免费在线 | 99这里只有久久精品视频 | 91精品视频一区二区三区 | 91亚洲综合 | 午夜精品视频福利 | 久久 精品一区 | 女人18毛片a级毛片一区二区 | 欧美日韩1区2区 | 亚洲精品国产自产拍在线观看 | 免费激情网 | 国产黄免费 | 精品欧美一区二区精品久久 | 色婷婷九月 | av久久久| 天天操一操| 中文字幕乱码亚洲精品一区 | 黄色录像av| 在线99| 色婷婷狠狠五月综合天色拍 | 国产免费观看久久黄 | 日日日日 | 久久久五月天 | 丰满少妇一级 | 日韩资源在线播放 | 亚洲伦理一区 | 91免费版成人| 国产精品自产拍在线观看蜜 | 亚洲一区二区三区毛片 | 在线亚洲天堂网 | 国产69精品久久99不卡的观看体验 | 国产福利免费看 | 日韩理论片在线 | 欧美日韩视频在线一区 | 成人黄色影片在线 | 亚洲专区视频在线观看 | 国产原创91| 天天色天天综合 | 免费观看全黄做爰大片国产 | 五月天亚洲综合小说网 | 午夜av大片 | 69av视频在线 | 麻豆视频免费播放 | 又长又大又黑又粗欧美 | 成人国产精品电影 | 欧洲在线免费视频 | 日韩有码在线播放 | 五月激情丁香婷婷 | 国产破处精品 | 久久精品久久久久电影 | 日韩电影在线观看一区二区三区 | 国产精品一区二区三区99 | 成人国产网站 | a级片久久| 亚洲精品乱码久久久久久9色 | 成人免费视频网 | 国产成人a v电影 | av网站有哪些 | 午夜 在线| 日韩在线观看av | 国产在线高清精品 | 色网站黄 | www99久久| 在线天堂8√ | 午夜av免费在线观看 | www.香蕉视频在线观看 | 天天干夜夜干 | 91热在线 | 午夜视频黄| 中文字幕精品www乱入免费视频 | 亚洲www天堂com | 久草精品在线播放 | 亚洲精品h | 久久久久久网址 | 亚洲精品视频在线观看免费 | 91视频高清免费 | 99久久精品国产一区 | 九九免费在线视频 | 中文字幕在线观看免费高清完整版 | 亚洲国产精品视频在线观看 | 正在播放一区二区 | 国产99久久久久久免费看 | 在线观看香蕉视频 | 亚洲a色 | 探花视频免费观看高清视频 | 日韩色综合网 | 欧美日韩性生活 | mm1313亚洲精品国产 | www.99在线观看 | 久久99国产一区二区三区 | 激情在线免费视频 | 亚洲视频专区在线 | 99视频偷窥在线精品国自产拍 | 91视频免费网站 | 麻豆精品在线 | 久久精品www人人爽人人 | 国产成人精品亚洲 | 中国一级片在线 | 国产欧美三级 | www.com.黄 | 亚洲欧美日韩精品一区二区 | 国产 欧美 日本 | 国产精品综合在线观看 | 成年人免费在线 | www色com| 区一区二区三区中文字幕 | 国产最新视频在线 | 在线a视频免费观看 | 成人97视频一区二区 | 久草网在线观看 | 亚洲欧美日韩一二三区 | 91av视频导航 | 日日操日日插 | 久久精品香蕉视频 | 亚洲久草视频 | 在线视频观看亚洲 | 热久久电影 | 婷婷综合亚洲 | 精品女同一区二区三区在线观看 | 激情电影影院 | 免费看片在线观看 | 97超碰成人在线 | 狠狠色丁香婷婷综合欧美 | 成年人免费看av | 国产视频在线免费 | 久久婷婷一区二区三区 | www.av小说| 最新av网址在线观看 | 国产亚洲精品久 | 久草电影免费在线观看 | 91人人爽久久涩噜噜噜 | 美女久久视频 | 国产视频一区在线 | 在线www色 | 日韩精品久久久久久久电影竹菊 | 久久精品看片 | 91在线porny国产在线看 | 欧美日韩亚洲一 | 在线视频免费观看 | 一本一道久久a久久精品蜜桃 | 欧美亚洲成人免费 | 国产精品久久久久久久久久久免费 | 夜夜夜夜夜夜操 | av 在线观看 | 日韩在线激情 | 在线观看日韩视频 | 成人av影视观看 | 亚洲精品久| 视频高清 | 久久99精品国产91久久来源 | 国产成人精品一区二区三区福利 | 在线观看av网站 | 久久电影网站中文字幕 | 麻豆久久精品 | 天天色天天射天天操 | 日韩成人在线免费观看 | 国精产品一二三线999 | 亚洲精品三级 | 国产在线v | 亚洲色图27p | 久草在线中文视频 | 欧美最猛性xxxx | 成人免费共享视频 | 在线日韩亚洲 | 国产在线观 | 黄色免费大全 | 国内精品久久久久影院男同志 | 韩国av电影在线观看 | 精品国产自 | 在线 欧美 日韩 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 久草成人在线 | 午夜在线观看影院 | av成人资源| 国产在线一区二区三区播放 | av大全免费在线观看 | 手机看片福利 | 国产一区二区在线观看免费 | 成人小视频在线 | 欧美午夜寂寞影院 | 久久神马影院 | 色婷婷综合久久久久中文字幕1 | 成人免费 在线播放 | 九九热精品视频在线播放 | 久久久国产精华液 | 韩日成人av| 国产精华国产精品 | 久草久热 | 婷婷香蕉| 黄色小网站免费看 | 91精品啪 | 欧美色图狠狠干 | 午夜婷婷在线观看 | wwxxxx日本 | 2019中文最近的2019中文在线 | 91av福利视频 | 亚洲精品美女在线观看 | 麻豆视频在线看 | 久久综合亚洲鲁鲁五月久久 | 在线观看日韩 | 日韩精品久久久久久久电影99爱 | 伊人天堂av | 欧美 日韩 久久 | 国产精品无av码在线观看 | 91人人人| 欧美日韩高清不卡 | 午夜精品一区二区三区在线播放 | 国产日韩精品一区二区在线观看播放 | 在线观看av麻豆 | 国产精品18久久久久久首页狼 | 97国产精品亚洲精品 | 午夜精品一区二区三区在线观看 | 成人va天堂| 久久久久日本精品一区二区三区 | 丝袜+亚洲+另类+欧美+变态 | 亚洲精品福利视频 | 日韩电影在线观看一区二区三区 | 97免费公开视频 | 97超碰资源网 | 视频三区 | 久草视频免费 | 免费看久久 | 91在线播放国产 | 激情综合久久 | www.玖玖玖 | 97色综合| 国产又粗又猛又爽又黄的视频先 | 日韩成人中文字幕 | 91刺激视频 | 成人在线视频一区 | 99久久精品国产一区二区成人 | 欧美 激情在线 | 欧美精品乱码久久久久久按摩 | 久久精品视频中文字幕 | 亚洲欧美视频一区二区三区 | 免费日韩 精品中文字幕视频在线 | 91精品一区二区三区蜜桃 | 久久久麻豆视频 | 日韩久久精品一区二区三区下载 | 中文字幕免费在线看 | 夜夜婷婷 | 一级黄色免费 | 久久99亚洲网美利坚合众国 | 国语精品免费视频 | 午夜国产一区 | 黄色aaa级片 | 日韩在线大片 | 国产一级片一区二区三区 | 在线香蕉视频 | 亚洲免费视频观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | www日| 成 人 黄 色 视频播放1 | 久久精品爱爱视频 |