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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > Caffe >内容正文

Caffe

本地缓存之王——Caffeine 组件最强讲解!

發布時間:2023/12/29 Caffe 117 豆豆
生活随笔 收集整理的這篇文章主要介紹了 本地缓存之王——Caffeine 组件最强讲解! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊關注公眾號,實用技術文章及時了解

結論:Caffeine 是目前性能最好的本地緩存,因此,在考慮使用本地緩存時,直接選擇 Caffeine 即可。

先看一個小例子,明白如何創建一個 Caffeine 緩存實例。

Caffeine?caffeine?=?Caffeine.newBuilder().initialCapacity(3).maximumSize(4); Cache?cache?=?caffeine.build(); cache.put("aa",?13); System.out.println(cache.getIfPresent("aa"));

Caffeine 相當于一個緩存工廠,可以創建出多個緩存實例 Cache。這些緩存實例都繼承了 Caffeine 的參數配置,Caffeine 是如何配置的,這些緩存實例就具有什么樣的特性和功能。

1. Caffeine 可以設置哪些緩存屬性呢?

1. 緩存初始容量

initialCapacity:整數,表示能存儲多少個緩存對象。

為什么要設置初始容量呢?因為如果提前能預估緩存的使用大小,那么可以設置緩存的初始容量,以免緩存不斷地進行擴容,致使效率不高。

2. 最大容量 最大權重

maximumSize:最大容量,如果緩存中的數據量超過這個數值,Caffeine 會有一個異步線程來專門負責清除緩存,按照指定的清除策略來清除掉多余的緩存。

注意:比如最大容量是 2,此時已經存入了2個數據了,此時存入第3個數據,觸發異步線程清除緩存,在清除操作沒有完成之前,緩存中仍然有3個數據,且 3 個數據均可讀,緩存的大小也是 3,只有當緩存操作完成了,緩存中才只剩 2 個數據,至于清除掉了哪個數據,這就要看清除策略了。

maximumWeight:最大權重,存入緩存的每個元素都要有一個權重值,當緩存中所有元素的權重值超過最大權重時,就會觸發異步清除。

下面給個例子:

class?Person{Integer?age;String?name; }Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); cache.put("three",?new?Person(1,?"three")); Thread.sleep(10); System.out.println(cache.estimatedSize()); System.out.println(cache.getIfPresent("two"));

運行結果:

2 null

要使用權重來衡量的話,就要規定權重是什么,每個元素的權重怎么計算,weigher 方法就是設置權重規則的,它的參數是一個函數,函數的參數是 key 和 value,函數的返回值就是元素的權重,比如上述代碼中,caffeine 設置了最大權重值為 30,然后將每個 Person 對象的 age 年齡作為權重值,所以整個意思就是:緩存中存儲的是 Person 對象,但是限制所有對象的 age 總和不能超過 30,否則就觸發異步清除緩存。

特別要注意一點:最大容量 和 最大權重 只能二選一作為緩存空間的限制。

3. 緩存狀態

3.1 默認的緩存狀態收集器 CacheStats

默認情況下,緩存的狀態會用一個 CacheStats 對象記錄下來,通過訪問 CacheStats 對象就可以知道當前緩存的各種狀態指標,那究竟有哪些指標呢?

先說一下什么是“加載”,當查詢緩存時,緩存未命中,那就需要去第三方數據庫中查詢,然后將查詢出的數據先存入緩存,再返回給查詢者,這個過程就是加載。

  • totalLoadTime:總共加載時間。

  • loadFailureRate:加載失敗率,= 總共加載失敗次數 / 總共加載次數

  • averageLoadPenalty:平均加載時間,單位-納秒

  • evictionCount:被淘汰出緩存的數據總個數

  • evictionWeight:被淘汰出緩存的那些數據的總權重

  • hitCount:命中緩存的次數

  • hitRate:命中緩存率

  • loadCount:加載次數

  • loadFailureCount:加載失敗次數

  • loadSuccessCount:加載成功次數

  • missCount:未命中次數

  • missRate:未命中率

  • requestCount:用戶請求查詢總次數

CacheStats 類包含了 2 個方法,了解一下:

  • CacheStats minus(@Nonnull CacheStats other):當前 CacheStats 對象的各項指標減去參數 other 的各項指標,差值形成一個新的 CacheStats 對象。

  • CacheStats plus(@Nonnull CacheStats other):當前 CacheStats 對象的各項指標加上參數 other 的各項指標,和值形成一個新的 CacheStats 對象。

舉個例子說明:

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).recordStats().weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); cache.put("three",?new?Person(1,?"three")); CacheStats?stats?=?cache.stats();System.out.println(stats.hitCount());

3.2 自定義的緩存狀態收集器

自定義的緩存狀態收集器的作用:每當緩存有操作發生時,不管是查詢,加載,存入,都會使得緩存的某些狀態指標發生改變,哪些狀態指標發生了改變,就會自動觸發收集器中對應的方法執行,如果我們在方法中自定義的代碼是收集代碼,比如將指標數值發送到 kafka,那么其它程序從kafka讀取到數值,再進行分析與可視化展示,就能實現對緩存的實時監控了。

收集器接口為 StatsCounter ,我們只需實現這個接口的所有抽象方法即可。下面舉例說明。

public?class?MyStatsCounter?implements?StatsCounter?{@Overridepublic?void?recordHits(int?i)?{System.out.println("命中次數:"?+?i);}@Overridepublic?void?recordMisses(int?i)?{System.out.println("未命中次數:"?+?i);}@Overridepublic?void?recordLoadSuccess(long?l)?{System.out.println("加載成功次數:"?+?l);}@Overridepublic?void?recordLoadFailure(long?l)?{System.out.println("加載失敗次數:"?+?l);}@Overridepublic?void?recordEviction()?{System.out.println("因為緩存大小限制,執行了一次緩存清除工作");}@Overridepublic?void?recordEviction(int?weight)?{System.out.println("因為緩存權重限制,執行了一次緩存清除工作,清除的數據的權重為:"?+?weight);}@Overridepublic?CacheStats?snapshot()?{return?null;} }

上述代碼為自定義的緩存狀態收集器,收集到的狀態指標只是簡單地打印出來,snapshot 方法有什么作用,暫時不清楚。

特別需要注意的是:收集器中那些方法得到的狀態值,只是當前緩存操作所產生的結果,比如當前 cache.getIfPresent() 查詢一個值,查詢到了,說明命中了,但是 recordHits(int i) 方法的參數 i = 1,因為本次操作命中了 1 次。

再將收集器與某個緩存掛鉤,如下:

MyStatsCounter?myStatsCounter?=?new?MyStatsCounter(); Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).recordStats(()->myStatsCounter).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); cache.put("three",?new?Person(1,?"three")); cache.getIfPresent("ww"); CacheStats?stats?=?myStatsCounter.snapshot(); Thread.sleep(1000);

最后的執行結果為:

未命中次數:1 因為緩存權重限制,執行了一次緩存清除工作,清除的數據的權重為:18
4. 線程池

Caffeine 緩沖池總有一些異步任務要執行,所以它包含了一個線程池,用于執行這些異步任務,默認使用的是 ForkJoinPool.commonPool() 線程池,個人覺得沒有必要去自定義線程池,或者使用其它的線程池,因為 Caffeine 的作者在設計的時候就考慮了線程池的選擇,既然別人選擇了,就有一定道理。

如果一定要用其它的線程池,可以通過 executor() 方法設置,方法參數是一個 線程池對象。

5. 數據過期策略

5.1 expireAfterAccess

最后一次訪問之后,隔多久沒有被再次訪問的話,就過期。訪問包括了 讀 和 寫。舉個例子:

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).expireAfterAccess(2,?TimeUnit.SECONDS).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); Thread.sleep(3000); System.out.println(cache.getIfPresent("one")); System.out.println(cache.getIfPresent("two"));

運行結果:

null null

expireAfterAccess 包含兩個參數,第二個參數是時間單位,第一個參數是時間大小,比如上述代碼中設置過期時間為 2 秒,在過了 3 秒之后,再次訪問數據,發現數據不存在了,即觸發過期清除了。

5.2 expireAfterWrite

某個數據在多久沒有被更新后,就過期。舉個例子

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).expireAfterWrite(2,?TimeUnit.SECONDS).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); Thread.sleep(1000); System.out.println(cache.getIfPresent("one").getName()); Thread.sleep(2000); System.out.println(cache.getIfPresent("one"));

運行結果:

one null

只能是被更新,才能延續數據的生命,即便是數據被讀取了,也不行,時間一到,也會過期。

5.2 expireAfter

實話實說,關于這個設置項,官網沒有說明白,網上其它博客更是千篇一律,沒有一個講明白的。此處簡單講講我個人的測試用例與理解,如果有誤,歡迎評論指正。

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).expireAfter(new?Expiry<String,?Person>()?{@Overridepublic?long?expireAfterCreate(String?s,?Person?person,?long?l)?{if(person.getAge()?>?60){?//首次存入緩存后,年齡大于?60?的,過期時間為?4?秒return?4000000000L;}return?2000000000L;?//?否則為?2?秒}@Overridepublic?long?expireAfterUpdate(String?s,?Person?person,?long?l,?long?l1)?{if(person.getName().equals("one")){?//?更新?one?這個人之后,過期時間為?8?秒return?8000000000L;}return?4000000000L;?//?更新其它人后,過期時間為?4?秒}@Overridepublic?long?expireAfterRead(String?s,?Person?person,?long?l,?long?l1)?{return?3000000000L;?//?每次被讀取后,過期時間為?3?秒}}).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build();

expireAfter 方法的參數是一個 Expiry 對象,Expiry 是一個接口,上述代碼用了匿名類。需要實現 Expiry 的三個方法。

  • expireAfterCreate(String s, Person person, long l) :此方法為數據<s , person> 創建之后,過期時間是多久(可以理解為生命周期),單位為納秒,方法的返回值就是過期時間,這個時間設置為多久,怎么設置,可以自定義的,比如上述代碼,60 歲以上的過期時間為 4 秒,如果 4 秒內數據沒有被操作,就過期。另外還有一個參數 long l,l 表示創建時間的系統時間戳,單位為納秒。

  • expireAfterUpdate(String s, Person person, long l, long l1):此方法表示更新某個數據后,過期時間是多久(刷新生命周期),個人認為:參數 l 表示更新前的系統時間戳,l1 表示更新成功后的系統時間戳,因為在多線程下,更新操作可能會阻塞。

  • expireAfterRead(String s, Person person, long l, long l1) : 與 expireAfterUpdate 同理。

6. refreshAfterWrite 延遲刷新
refreshAfterWrite(long?duration,?TimeUnit?unit)

寫操作完成后多久才將數據刷新進緩存中,兩個參數只是用于設置時間長短的。

只適用于 LoadingCache 和 AsyncLoadingCache,如果刷新操作沒有完成,讀取的數據只是舊數據。 同理,不想寫了。

7. removalListener 清除、更新監聽

當緩存中的數據發送更新,或者被清除時,就會觸發監聽器,在監聽器里可以自定義一些處理手段,比如打印出哪個數據被清除,原因是什么。這個觸發和監聽的過程是異步的,就是說可能數據都被刪除一小會兒了,監聽器才監聽到。

舉個例子:

MyStatsCounter?myStatsCounter?=?new?MyStatsCounter(); Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).removalListener((String?key,?Person?value,?RemovalCause?cause)->{System.out.println("被清除人的年齡:"?+?value.getAge()?+?";??清除的原因是:"?+?cause);}).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); cache.put("one",?new?Person(14,?"one")); cache.invalidate("one"); cache.put("three",?new?Person(31,?"three")); Thread.sleep(2000);

運行結果:

被清除人的年齡:12;??清除的原因是:REPLACED 被清除人的年齡:14;??清除的原因是:EXPLICIT 被清除人的年齡:18;??清除的原因是:SIZE

removalListener 方法的參數是一個 RemovalListener 對象,但是可以函數式傳參,如上述代碼,當數據被更新或者清除時,會給監聽器提供三個內容,(鍵,值,原因)分別對應代碼中的三個參數,(鍵,值)都是更新前,清除前的舊值, 這樣可以了解到清除的詳細了。

清除的原因有 5 個,存儲在枚舉類 RemovalCause 中:

  • EXPLICIT : 表示顯式地調用刪除操作,直接將某個數據刪除。

  • REPLACED:表示某個數據被更新。

  • EXPIRED:表示因為生命周期結束(過期時間到了),而被清除。

  • SIZE:表示因為緩存空間大小受限,總權重受限,而被清除。

  • COLLECTED : 這個不明白。

8. 緩存的數據使用弱引用,軟引用

AsyncCache 緩存不支持軟引用和弱引用。

  • weakKeys():將緩存的 key 使用弱引用包裝起來,只要 GC 的時候,就能被回收。

  • weakValues():將緩存的 value 使用弱引用包裝起來,只要 GC 的時候,就能被回收。

  • softValues():將緩存的 value使用軟引用包裝起來,只要 GC 的時候,有必要,就能被回收。

關于軟引用,弱引用,強引用,虛引用,可以參考:

https://blog.csdn.net/dgh112233/article/details/107288545

因此,弱引用 ,軟引用的設置,只是為了方便回收空間,節省空間,但是使用的時候注意一點,緩存查詢時,是用 == 來判斷兩個 key 是否相等,比較的是地址,不是 key 本身的內容,很容易造成一種現象:命名 key 是對的,但就是無法命中,因為 key 的內容相等,但是地址卻不同,會被認為是兩個 key。

9. 時間源 ticker

不了解,感覺默認用系統的時鐘就好了。

10. 同步監聽器

之前的 removalListener 是異步監聽,此處的 writer 方法可以設置同步監聽器,同步監聽器一個實現了接口 CacheWriter 的實例化對象,我們需要自定義接口的實現類,比如:

public?class?MyCacheWriter?implements?CacheWriter<String,?Application.Person>?{@Overridepublic?void?write(String?s,?Application.Person?person)?{System.out.println("新增/更新了一個新數據:"?+?person.getName());}@Overridepublic?void?delete(String?s,?Application.Person?person,?RemovalCause?removalCause)?{System.out.println("刪除了一個數據:"?+?person.getName());} }

關鍵是要實現 CacheWriter 接口的兩個方法,當新增,更新某個數據時,會同步觸發 write 方法的執行。當刪除某個數據時,會觸發 delete 方法的執行。

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).writer(new?MyCacheWriter()).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.put("two",?new?Person(18,?"two")); cache.invalidate("two");

運行結果:

新增/更新了一個新數據:one 新增/更新了一個新數據:two 刪除了一個數據:two

2. Cache 可以有的操作

  • V getIfPresent(K key) :如果緩存中 key 存在,則獲取 value,否則返回 null。

  • void put( K key, V value):存入一對數據 <key, value>。

  • Map<K, V> getAllPresent(Iterable<?> var1) :參數是一個迭代器,表示可以批量查詢緩存。

  • void putAll( Map<? extends K, ? extends V> var1): 批量存入緩存。

  • void invalidate(K var1):刪除某個 key 對應的數據。

  • void invalidateAll(Iterable<?> var1):批量刪除數據。

  • void invalidateAll():清空緩存。

  • long estimatedSize():返回緩存中數據的個數。

  • CacheStats stats():返回緩存當前的狀態指標集。

  • ConcurrentMap<K, V> asMap():將緩存中所有的數據構成一個 map。

  • void cleanUp():會對緩存進行整體的清理,比如有一些數據過期了,但是并不會立馬被清除,所以執行一次 cleanUp 方法,會對緩存進行一次檢查,清除那些應該清除的數據。

  • V get( K var1, Function<? super K, ? extends V> var2):第一個參數是想要獲取的 key,第二個參數是函數,例子如下:

Caffeine<String,?Person>?caffeine?=?Caffeine.newBuilder().maximumWeight(30).weigher((String?key,?Person?value)->?value.getAge()); Cache<String,?Person>?cache?=?caffeine.build(); cache.put("one",?new?Person(12,?"one")); cache.get("hello",?(k)->?new?Person(13,?k)); System.out.println(cache.getIfPresent("hello").getName());

可以著重考慮一下第二個參數的寫法,如果寫成從數據庫查詢的話,那就很完整了。

還有另外兩種緩存:LoadingCache, AsyncLoadingCache。

來源:blog.csdn.net/dgh112233/article/

details/118915259

推薦

Java面試題寶典

技術內卷群,一起來學習!!

PS:因為公眾號平臺更改了推送規則,如果不想錯過內容,記得讀完點一下“在看”,加個“星標”,這樣每次新文章推送才會第一時間出現在你的訂閱列表里。點“在看”支持我們吧!

總結

以上是生活随笔為你收集整理的本地缓存之王——Caffeine 组件最强讲解!的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日韩大片在线看 | 国产在线不卡精品 | 四虎成人精品永久免费av九九 | 中文字幕日本特黄aa毛片 | www看片网站 | 国产免费久久久久 | 天天爽天天射 | 97热久久免费频精品99 | 美女黄频视频大全 | 91麻豆精品国产91久久久无需广告 | 成人影片免费 | 久久久久久久久久久黄色 | av网站在线观看免费 | 亚洲视频aaa | 麻豆国产在线视频 | 91精选在线| 国产精品久久久av久久久 | 久久综合久久八八 | 三级动图 | 婷婷在线五月 | 婷婷色综 | 亚洲免费视频在线观看 | 成人免费观看完整版电影 | 91精品国产99久久久久久久 | 中文字幕 二区 | 午夜久久网| 欧美日韩伦理一区 | 国产精品白浆视频 | 欧美巨大| avwww在线观看 | 亚洲精品福利在线观看 | 国产特黄色片 | 正在播放 久久 | 91精品国产乱码久久桃 | 色综合天天在线 | 高清中文字幕 | 亚洲区另类春色综合小说校园片 | 欧美性超爽| 午夜国产福利在线 | 久久美女精品 | 久久精品看片 | 在线观看岛国片 | 欧洲黄色片 | 亚洲五月婷 | 国产精品亚洲精品 | 成人av视屏| 色香天天 | 欧美午夜性生活 | 97电影在线看视频 | 中文字幕在线久一本久 | .国产精品成人自产拍在线观看6 | 伊人色综合久久天天网 | 一级国产视频 | 不卡在线一区 | 久久综合综合久久综合 | 国产黄色片久久 | 日韩欧美v | 亚洲成a人片综合在线 | 亚洲黄色一级视频 | 欧美日韩在线免费观看视频 | 成人免费视频观看 | 国产99久久精品一区二区300 | 国产高清免费av | 成人毛片一区 | 国产黄色精品视频 | 一区二区观看 | 麻豆一区在线观看 | 日韩成人精品一区二区三区 | 国产精品一区二区62 | 免费在线观看av网站 | 国产在线a免费观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产一二三四在线观看视频 | 99免在线观看免费视频高清 | 精品久久久久久久 | 91高清视频在线 | 亚洲区视频在线观看 | 成人三级网站在线观看 | 精品国产一区二区三区日日嗨 | 97狠狠操| 在线一区电影 | 成人资源网 | 人人爱爱 | 91人人爱| 久久久一本精品99久久精品 | 日韩免费二区 | 中文字幕国内精品 | 97超碰人人爱 | 少妇性xxx | 国产成人精品一区二区三区网站观看 | 免费视频一区 | 日日夜夜狠狠 | 欧美日韩精品在线播放 | 免费网站黄 | 天堂成人在线 | 久久五月激情 | 亚洲一区二区观看 | 久久精品www人人爽人人 | 精品国产一区二区三区不卡 | 99热国内精品 | 999国产在线 | 国产999久久久 | 人人爽夜夜爽 | 在线观看精品视频 | 国产精品va最新国产精品视频 | 色婷婷激情电影 | 免费日韩 精品中文字幕视频在线 | 成人在线网站观看 | 免费在线黄色av | 成人a在线观看 | 在线视频 91| 91精品国产麻豆 | 久久免费高清视频 | 激情欧美一区二区三区 | 日韩欧美中文 | 国内精品二区 | 欧美一级激情 | 韩国在线一区二区 | 狠狠的干狠狠的操 | 国产亚洲精品福利 | 日韩欧美精品在线视频 | 成人在线视频一区 | 色视频网站在线 | 伊人五月天综合 | 亚洲精品国精品久久99热一 | 激情五月激情综合网 | 国产精品久久久久久麻豆一区 | 久久久久成人免费 | 午夜少妇一区二区三区 | 国产91aaa| 91色吧| 精品女同一区二区三区在线观看 | 麻豆精品传媒视频 | 黄色的网站在线 | 日日日天天天 | 精品欧美一区二区精品久久 | 国产日产欧美在线观看 | 日韩在线免费播放 | 婷婷爱五月天 | 黄色小说在线观看视频 | 亚洲 欧美 国产 va在线影院 | 日韩在线观看中文字幕 | 日本黄色大片儿 | 亚洲 欧美 国产 va在线影院 | 亚洲国产福利视频 | 激情欧美xxxx| 日韩电影精品一区 | 99精品视频一区 | 久久综合色8888 | 国产综合在线观看视频 | 亚洲欧美日韩精品一区二区 | 黄色大片日本免费大片 | 人人添人人澡人人澡人人人爽 | 91高清视频在线 | 欧美午夜精品久久久久 | 成人毛片在线观看 | 狠狠色狠狠色合久久伊人 | 贫乳av女优大全 | 中文字幕网站视频在线 | 亚洲最大在线视频 | 成年人av在线播放 | 91久久在线观看 | 国产精品一区二区三区在线免费观看 | 成人影视片 | 国产理论在线 | 97成人在线免费视频 | 三级av免费观看 | 四虎小视频 | 四虎海外影库www4hu | 久久久www成人免费精品张筱雨 | 亚洲伦理电影在线 | 久久99国产综合精品 | 日韩免费不卡av | 免费在线观看亚洲视频 | 成人a级网站 | 欧美一级电影免费观看 | 亚洲激情一区二区三区 | 久草视频免费看 | 精品1区2区3区 | 国产精品久久久久久久久久久久午夜 | 免费精品人在线二线三线 | 综合五月 | 黄色免费高清视频 | 97热久久免费频精品99 | 久久国产精品视频免费看 | 日韩在线精品一区 | 国产美女黄网站免费 | 国产精品高潮久久av | 99久久婷婷国产综合精品 | 激情亚洲综合在线 | 激情婷婷六月 | 欧美日韩视频在线一区 | 在线视频免费观看 | 在线免费观看黄 | 国产在线精品区 | 亚洲综合色网站 | 国产一级电影免费观看 | 中文字幕 国产专区 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 日韩色中色 | 91av在线电影 | 狠狠干网 | av无限看 | 成人在线免费视频观看 | www国产一区 | 四虎永久免费在线观看 | 最近2019年日本中文免费字幕 | 天天干天天操天天操 | 六月色丁香 | 国产成人精品一区二区三区福利 | 国产999视频在线观看 | www欧美色 | 亚洲一级电影在线观看 | 国产中文欧美日韩在线 | 狠狠操狠狠 | 亚洲欧美精品在线 | 成年人免费在线观看网站 | 就要干b| 日韩欧美国产精品 | 一区二区三区福利 | 欧美日比视频 | 中文字幕在线播放视频 | 伊人欧美| 免费视频色| 亚洲天堂va| 中文字幕在线看片 | 国产精品精品视频 | 亚洲精品视频免费 | 亚洲最大av| 综合视频在线 | 一区三区视频在线观看 | 一区二区视频在线看 | 久草线 | 一区二区中文字幕在线播放 | 亚洲精品视频在线播放 | 免费在线观看av不卡 | 日韩免费一二三区 | 99视频在线免费看 | 中文字幕在线视频精品 | 国产麻豆果冻传媒在线观看 | 亚洲精选视频在线 | 国产一级免费在线观看 | 国产精品视频线看 | 成年人视频在线观看免费 | 精久久久久 | 国内精品视频一区二区三区八戒 | 不卡电影一区二区三区 | 久久黄页 | 日日夜日日干 | 日韩性片| 国产成人在线观看 | 婷婷亚洲激情 | 免费看的黄网站 | 国产精品不卡在线观看 | 干亚洲少妇 | 国产做aⅴ在线视频播放 | 国产中文字幕在线看 | 中文字幕在线播放av | 999男人的天堂 | 日本精品在线看 | www.99在线观看 | 黄色美女免费网站 | 欧美日高清视频 | 热久久免费视频 | 日日夜夜精品免费 | 国产高清亚洲 | 色偷偷av男人天堂 | 午夜国产福利在线 | 久久这里只有精品视频首页 | 久久视频国产 | 国产精品视频地址 | 国产婷婷一区二区 | 亚洲视频在线免费看 | 伊人成人久久 | 久久免费国产精品 | 国产一区国产精品 | 国产三级香港三韩国三级 | 夜夜操夜夜干 | 日韩国产在线观看 | 狠狠色噜噜狠狠 | 91麻豆文化传媒在线观看 | 韩国精品福利一区二区三区 | 精品久久国产一区 | 亚洲国产mv | 国产精品黄色av | 992tv人人草 黄色国产区 | 国产精品精品久久久久久 | 丁香六月婷 | 久久精品91久久久久久再现 | 成人毛片100免费观看 | 久久这里只有精品9 | 婷婷六月中文字幕 | 涩五月婷婷 | 福利视频一区二区 | 黄色av在 | 激情综合五月天 | 69性欧美| 久久精品国产99国产 | 亚洲激情精品 | 天天色天天干天天色 | 黄色片网站大全 | 热re99久久精品国产99热 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 人人澡澡人人 | 正在播放一区二区 | 五月天综合色激情 | 婷婷丁香视频 | 久久综合狠狠狠色97 | 精品久久综合 | 中文字幕av在线不卡 | 日韩精品91偷拍在线观看 | 成人综合免费 | 国产永久免费高清在线观看视频 | 六月激情久久 | 免费观看成人av | 永久免费的啪啪网站免费观看浪潮 | 天天干天天干天天干 | 一区二区 不卡 | 欧美在线99 | 美女久久 | 精品国产伦一区二区三区免费 | 一区二区成人国产精品 | 黄色在线观看免费 | 日韩激情视频在线 | 四虎www. | 亚洲精品456在线播放第一页 | 亚洲欧洲国产日韩精品 | 97成人精品| 五月婷婷中文网 | 日韩av一区二区在线影视 | 色婷婷丁香 | 日韩精品三区四区 | 在线观看成人av | 99色在线播放| 免费视频久久久 | 久久成人精品视频 | 日韩色一区二区三区 | 久久精品999 | 日本一区二区高清不卡 | 91久久黄色| 在线免费中文字幕 | 999热线在线观看 | 九九久久免费视频 | 中文字幕高清免费日韩视频在线 | 干干操操| 国产女v资源在线观看 | 美女国产网站 | a视频在线观看免费 | 九色精品免费永久在线 | 亚洲国产中文字幕 | 9久久精品 | 麻豆视频91 | 国产精品久久久久永久免费 | 国产欧美综合视频 | 天天操天天色天天射 | 欧美视频在线观看免费网址 | av福利在线看 | 欧美日韩中文在线 | wwwwww国产| 黄色大片中国 | 日韩精品综合在线 | 91高清在线看 | 日韩欧美电影在线 | 婷婷天天色 | 一级欧美日韩 | 日韩av成人在线观看 | 亚洲国产精品视频 | 久久天天躁狠狠躁亚洲综合公司 | 69国产盗摄一区二区三区五区 | 91欧美视频网站 | 久久99精品国产麻豆宅宅 | 最新国产在线 | 亚洲狠狠婷婷 | 亚洲国产中文字幕在线视频综合 | 美女视频国产 | 精品v亚洲v欧美v高清v | 亚洲资源| av成人免费观看 | 亚洲精品国产电影 | 国产原创在线观看 | 又大又硬又黄又爽视频在线观看 | 91av蜜桃| 亚洲美女视频在线 | 91 中文字幕 | 亚洲免费一级 | 日韩高清在线一区二区 | 三级黄免费看 | 欧美日韩在线视频免费 | 四虎国产 | 天天做天天爱天天爽综合网 | 亚洲精品视频在线播放 | 一区二区三区在线电影 | 欧美精品色 | 国产免费影院 | 99综合久久| 国产在线观看h | 亚洲国产一二三 | 国产又黄又爽又猛视频日本 | av成人免费网站 | 99国产情侣在线播放 | 日韩欧美一区二区在线 | 国产成人免费观看 | 国产经典三级 | 久久久久久网 | 成人h在线 | 超碰在线免费97 | 亚洲毛片久久 | 国产午夜精品一区二区三区四区 | 欧美日韩免费在线观看视频 | 日韩成年视频 | 久久久久久毛片精品免费不卡 | 国产福利在线 | 一区二区精品国产 | 国产字幕在线观看 | 人人澡人人草 | 欧美了一区在线观看 | 国产剧在线观看片 | 国产精品24小时在线观看 | 在线av资源| 免费国产在线精品 | 91成版人在线观看入口 | 免费亚洲成人 | 免费毛片一区二区三区久久久 | 日韩高清一区二区 | 欧美另类网站 | 99久久日韩精品免费热麻豆美女 | 久久99这里只有精品 | 日韩色视频在线观看 | 97涩涩视频 | 婷婷在线看 | 久热只有精品 | 国产精品国产三级国产aⅴ9色 | 操夜夜操 | 久久国精品 | 成年人视频免费在线 | 91高清免费观看 | 在线观看韩日电影免费 | 久久这里 | 亚洲国产黄色片 | 成人va视频 | 狠狠操狠狠插 | 国产一区国产精品 | 亚洲综合干| 久久久久久国产一区二区三区 | 日韩三级.com | 成年性视频 | 免费av高清| 久久精品美女 | 欧美亚洲免费在线一区 | 麻豆传媒视频在线播放 | 99久久精品国产免费看不卡 | 中文字幕免费观看全部电影 | 在线免费高清 | 婷婷六月久久 | 婷婷色av | 国产精品四虎 | 91视频午夜| 91麻豆精品久久久久久 | 在线观看视频中文字幕 | 中文字幕av全部资源www中文字幕在线观看 | 中文字幕在线观看视频一区二区三区 | 在线中文字幕播放 | 麻豆国产电影 | 中文字字幕在线 | 日韩免费av在线 | 午夜在线免费观看 | a久久久久久 | 日韩欧美国产激情在线播放 | 欧美精品乱码久久久久久按摩 | 九九精品视频在线观看 | av黄色国产 | 在线观看v片 | 亚洲 欧洲av | 一区二区三区福利 | ,午夜性刺激免费看视频 | 日韩中文字幕一区 | 日韩精品一区二区三区第95 | 美女国产网站 | 在线观看黄色大片 | 国产精品一区二区在线观看 | 国产高清视频在线播放一区 | 五月婷婷综合激情 | 81精品国产乱码久久久久久 | 精品一区二区日韩 | 国产视频91在线 | 69xxxx欧美| 福利二区视频 | 欧美日韩破处 | 精品国产1区二区 | 99热这里只有精品久久 | 国产在线看 | 天天综合网天天综合色 | 91在线观看视频 | 亚洲成人免费观看 | 中文字幕免费国产精品 | 日本爱爱免费视频 | 性色av免费看 | 2020天天干天天操 | 精品一区二区av | 免费观看久久 | 国产特级毛片aaaaaaa高清 | 激情小说网站亚洲综合网 | 久久久久免费电影 | 三级黄色a | 六月激情丁香 | 久久99精品国产91久久来源 | 99精品在线 | 又色又爽又黄高潮的免费视频 | 欧美视频日韩 | 亚洲精品国产视频 | 热久久国产精品 | 久久经典国产视频 | 国产99久久精品一区二区300 | 91av视频在线观看免费 | 亚洲一级片在线看 | 日韩精品专区在线影院重磅 | 国产精品系列在线播放 | 婷婷激情5月天 | 一区二区三区在线电影 | 欧美日韩视频免费 | 欧美一区二视频在线免费观看 | 久久久99国产精品免费 | 91精品视频一区二区三区 | 五月婷婷av在线 | 久久免费视频在线 | 精品国产1区2区 | 97香蕉久久国产在线观看 | 欧美伦理一区二区三区 | 国产精品麻豆三级一区视频 | 久久99久久精品 | 91麻豆精品国产91久久久久久久久 | 色综合久久久久综合体桃花网 | 精品久久久久久国产91 | 亚洲精品视频免费观看 | 黄色www在线观看 | 国产精品久久 | 不卡av在线播放 | 一级成人免费视频 | 福利一区在线 | 婷婷精品国产欧美精品亚洲人人爽 | 国产资源 | 日本不卡123区 | 成人中文字幕av | 亚洲欧美日韩国产一区二区三区 | 91原创在线观看 | 日韩伦理片一区二区三区 | 欧美精品天堂 | 日韩毛片精品 | 免费黄色激情视频 | 精品国产伦一区二区三区 | 亚洲一级免费观看 | 久久8精品 | 成人毛片一区 | 91成熟丰满女人少妇 | 五月婷婷综合在线观看 | 国产你懂的在线 | 成人欧美日韩国产 | 西西www444| 国产二区视频在线观看 | 亚洲无吗av | 涩涩网站在线看 | 久久99久久久久久 | 国产黄色看片 | 久久欧美在线电影 | 黄网站app在线观看免费视频 | 97超碰人人澡人人 | www.干| 一区二区三区不卡在线 | 黄色毛片视频免费观看中文 | 91精品国产乱码 | 一区二区三区免费网站 | 久久午夜鲁丝片 | 亚洲天堂精品视频 | 亚洲精品美女久久17c | 美女禁18| 涩涩网站在线观看 | 亚洲精品在线免费播放 | 久久久久草| 成年一级片 | 激情久久小说 | 激情网五月婷婷 | 天天干天天草天天爽 | 午夜10000 | 亚洲爱爱视频 | 久久艹艹 | 五月天天色| 网站免费黄| 日日干天天射 | 人人玩人人添人人 | 中文av在线天堂 | 亚洲视频电影在线 | 色99之美女主播在线视频 | 欧美亚洲免费在线一区 | 日韩欧美视频一区 | 国产高清中文字幕 | 91成人在线免费观看 | 精品五月天| 香蕉在线观看视频 | 国内精品久久久精品电影院 | www久久| 国产一级片视频 | 日韩特黄一级欧美毛片特黄 | 中文字幕麻豆 | 国产精品情侣视频 | 日本三级人妇 | 天天射综合网视频 | 欧美日韩69 | 99久久99久久精品国产片果冰 | 久草在线| 伊人夜夜 | 91精品啪在线观看国产 | 激情丁香 | av电影在线观看完整版一区二区 | 91精品国产九九九久久久亚洲 | 91精品国产乱码久久桃 | 亚洲午夜精品久久久久久久久久久久 | 国产精品6 | 狠狠色丁香久久婷婷综合五月 | 国产亚洲精品久久久久久 | 色噜噜日韩精品欧美一区二区 | 成人午夜剧场在线观看 | 九九热99视频| 欧美午夜寂寞影院 | 国产在线高清视频 | 久久国产一区二区三区 | 超碰人人草| 国产视频精品在线 | 欧美亚洲一区二区在线 | 狠狠干综合 | 成人免费一区二区三区在线观看 | 国产成人一区二区三区久久精品 | 午夜12点 | 欧亚日韩精品一区二区在线 | 黄色在线观看免费 | 久久国产精品免费一区二区三区 | 久久国产露脸精品国产 | 亚洲a资源| 精品国内自产拍在线观看视频 | 久久综合色天天久久综合图片 | 天天干,夜夜操 | 久久久久在线视频 | 久久99国产精品久久99 | 国产欧美精品在线观看 | 精品欧美一区二区在线观看 | 日韩国产欧美视频 | 国产高清一 | 天天色天天上天天操 | 亚洲欧洲国产视频 | 中文av在线播放 | 亚洲精品黄网站 | 99久热在线精品视频成人一区 | 韩国av一区二区三区在线观看 | 免费在线观看不卡av | 久草在线资源免费 | 麻豆成人精品视频 | 开心激情综合网 | 国产精品国产三级国产aⅴ入口 | 久久精品一区二区三区中文字幕 | 久久九九网站 | 欧美成年网站 | 97精品国产一二三产区 | 天天摸天天舔 | 亚洲欧美国产精品久久久久 | 国产黄色片免费看 | 日本最新高清不卡中文字幕 | 色综合婷婷 | 久久免费视频6 | 青青草视频精品 | 久久综合导航 | 高清av在线 | 免费男女羞羞的视频网站中文字幕 | 久久久免费看视频 | 国产精品99在线播放 | 亚洲 综合 国产 精品 | 91视频高清完整版 | 国产精品视频永久免费播放 | 日韩专区 在线 | 国产福利一区二区在线 | 久久伊人精品一区二区三区 | 91九色免费视频 | 国内偷拍精品视频 | 黄av免费在线观看 | 久久99久久99精品免费看小说 | 在线国产一区 | 毛片二区 | 色午夜| 在线a视频 | 成人精品亚洲 | 亚洲人成网站精品片在线观看 | 精品久久综合 | 欧美精品色 | 日韩激情网| 成人一区不卡 | jizz18欧美18 | 国产专区免费 | 免费久久网站 | 国产精品一区二区三区免费视频 | 久久久久麻豆v国产 | 亚洲综合黄色 | 免费观看性生活大片3 | 精品国产视频在线 | 69视频在线| 精品久久久久久国产偷窥 | 国产精品9999久久久久仙踪林 | 国产高清免费av | 西西444www大胆高清图片 | 成人免费观看在线视频 | 亚洲视频一区二区三区在线观看 | 狠狠五月婷婷 | 91午夜精品 | 高清有码中文字幕 | 国产999免费视频 | 欧美激情综合五月色丁香 | 免费高清在线一区 | 日韩视频免费观看高清完整版在线 | 免费在线观看av网址 | 成年人黄色免费视频 | 国产成人a v电影 | www.黄色网.com| 欧美日韩视频在线一区 | 久久 亚洲视频 | 九九涩涩av台湾日本热热 | 色欧美成人精品a∨在线观看 | 97视频免费看 | 午夜视频免费在线观看 | 91最新地址永久入口 | 亚洲国产日韩av | 成人av电影免费在线播放 | 六月丁香婷婷在线 | 干干夜夜 | 西西4444www大胆无视频 | 九色精品免费永久在线 | 黄色av一级片 | 亚洲国产丝袜在线观看 | 免费视频网 | 97视频免费在线观看 | 最近中文字幕完整高清 | 亚洲黄色大片 | 日韩av男人的天堂 | 免费看片网页 | 中文字幕中文字幕在线中文字幕三区 | 国产精品久久一区二区无卡 | 91视频免费网址 | 午夜少妇一区二区三区 | 国产一级免费观看 | 911免费视频 | 天天色天 | 精品久久久久久久久久国产 | 久久免费毛片视频 | 激情视频一区 | 久久午夜精品视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 欧美日韩国产一区二区在线观看 | 在线看日韩av | 天天亚洲| 成人av在线观 | 韩国av一区二区三区在线观看 | 国产aaa大片 | 日韩在线视频精品 | 91av视屏| 国产亚洲字幕 | 国产精品高清在线 | 久久超碰97 | 在线看片成人 | 91丨九色丨蝌蚪丨对白 | 深爱激情五月综合 | 久草在线免费资源站 | 久草免费新视频 | 欧美激情综合色综合啪啪五月 | 日日干 天天干 | 色婷婷国产 | 亚洲精品乱码久久 | 日韩综合第一页 | 亚洲在线视频播放 | 国产精品久久久久一区二区国产 | 欧美一区二区三区激情视频 | 顶级欧美色妇4khd | 精品久久久久_ | 手机版av在线 | 亚洲黄色免费在线看 | 午夜影院在线观看18 | 国产精品高清免费在线观看 | 国产污视频在线观看 | 亚洲免费激情 | 日本91在线| 久久久久久亚洲精品 | 久久精品久久久精品美女 | 国产美女搞久久 | 久久久www成人免费精品 | 国产乱老熟视频网88av | 免费麻豆视频 | 国产精品av一区二区 | 日韩欧美xxxx | 玖玖在线视频观看 | 国产精品一区二区久久精品爱涩 | 亚洲天天在线 | 国产精品第三页 | 国产精品久久久精品 | 久久激五月天综合精品 | 免费在线激情视频 | 亚洲精品久久久久www | 在线免费视频一区 | 黄色91免费观看 | 国产高清精品在线观看 | 色婷婷亚洲 | 五月婷在线观看 | 三级a视频| 欧美日韩aaaa| 在线观看中文字幕网站 | 亚洲综合丁香 | 麻豆国产精品va在线观看不卡 | 免费午夜网站 | 久久艹在线| 综合激情婷婷 | 麻豆激情电影 | 精品嫩模福利一区二区蜜臀 | 久久国语 | av在线小说 | 亚洲精品视频在线 | 91成人精品一区在线播放 | 国产精品久久久久久一区二区 | 2024av| 精品视频www | 在线免费观看视频你懂的 | 成人全视频免费观看在线看 | 色五月成人| 深夜免费网站 | 欧洲不卡av| 国产尤物在线 | 九九热只有精品 | 不卡视频一区二区三区 | 97国产大学生情侣酒店的特点 | 精品美女久久久久久免费 | 国产一级在线 | 久久精品人人做人人综合老师 | 在线观看视频你懂的 | 毛片一二区| 国产999在线观看 | 狠狠搞,com | 成年美女黄网站色大片免费看 | 国产精品亚洲a | 国产99色 | 日韩高清在线一区二区三区 | 久久精品国产亚洲a | 国产69久久久欧美一级 | 免费在线观看日韩欧美 | 久久精品一区二区三区中文字幕 | 精品国产大片 | 国产一级片免费观看 | 在线观看视频一区二区三区 | 美女精品在线 | 久久精彩| 福利视频第一页 | 黄色av在 | 亚洲国产美女精品久久久久∴ | 人人艹人人 | 91在线成人| 99精品色| 97人人模人人爽人人喊网 | 在线免费黄色av | 欧美淫aaa免费观看 日韩激情免费视频 | 奇米影视8888在线观看大全免费 | 国产精品高清在线观看 | 午夜视频在线网站 | 天天干天天做天天爱 | 国产精品大片 | 久久综合久久伊人 | 欧美日韩国产二区 | 免费视频资源 | 欧美日韩性视频 | 欧亚日韩精品一区二区在线 | 91视频成人免费 | av一区二区三区在线播放 | 日韩理论 | 日本xxxxav| 丁香综合激情 | 欧美日韩视频网站 | 国产老太婆免费交性大片 | 久久在线免费 | 久草视频视频在线播放 | 亚洲精品综合欧美二区变态 | 97在线观看免费观看高清 | 色婷婷激情综合 | 午夜在线免费观看视频 | 日日夜夜综合 | 综合久久久久久 | 亚洲午夜久久久久久久久电影网 | 精品av在线播放 | 午夜视频在线瓜伦 | 国产成人精品一区二区三区在线观看 | 超碰在线中文字幕 | 综合亚洲视频 | 一区二区三区精品久久久 | 亚洲午夜剧场 | 中文字幕精品在线 | 在线观看精品黄av片免费 | 天天草综合 | av福利资源 | 九热在线| 亚洲精品456在线播放 | 久视频在线播放 | 国产理论片在线观看 | 在线观看av片 | 天天操操操操操操 | 国产手机av在线 | 狠狠久久婷婷 | 婷婷电影在线观看 | 在线视频一区观看 | 色悠悠久久综合 | 免费毛片一区二区三区久久久 | 亚洲 中文 在线 精品 | 国产中的精品av小宝探花 | 日韩在线不卡视频 | 色综合久久久久久久久五月 | 日韩在线不卡视频 | 黄色亚洲片 | av中文字幕免费在线观看 | 精品99免费 | 91精品免费视频 | 午夜免费在线观看 | 久久久影院一区二区三区 | 亚洲香蕉在线观看 | 国产h片在线观看 | 国产裸体bbb视频 | 人人射人人插 | 国产精品99久久久久的智能播放 | 国产一区二三区好的 | 精品国产色| 久草免费福利在线观看 | 最近中文字幕完整高清 | 久久国产一区 | 日韩大片在线观看 | 婷婷精品在线视频 | 一级成人在线 | 国产精品免费久久久久久 | 在线观看中文字幕 | 国产一区二区三区在线 | 国产综合片 | 成人性生交大片免费观看网站 | 天天色天天射天天操 | 国产在线播放一区 | 免费在线观看av不卡 | 国产精品 国内视频 | 96精品高清视频在线观看软件特色 | 日韩在线观看 | 久久理论影院 | 黄色影院在线免费观看 | 亚洲精品啊啊啊 | 国产成人综合在线观看 | 日韩精品中文字幕在线 | 亚洲综合色av | 天天舔夜夜操 | 成人午夜免费福利 | 少妇做爰k8经典 | 久久久久国产a免费观看rela | 亚洲精品www| 婷婷久久久久 | 激情文学丁香 | 高潮久久久久久久久 | 五月婷婷婷婷婷 | 天天射天天添 | 区一区二在线 | 91看片在线免费观看 | 国产91大片 | 国产日韩欧美在线一区 | 国产成人高清在线 | 久久综合九色综合欧美就去吻 | 久久久久久免费网 | 狠狠色丁香婷婷综合视频 | 在线播放视频一区 | 高清不卡一区二区三区 | 激情网站五月天 | 最新99热| 欧美激情综合色综合啪啪五月 | 免费成人av在线 | av高清一区二区三区 | 在线最新av | 99视频国产在线 | 久久影院午夜论 | 91精品办公室少妇高潮对白 | 精品久久国产精品 | av在线中文 | 国产婷婷vvvv激情久 | 少妇自拍av | 国产人成一区二区三区影院 | 中文国产成人精品久久一 | 国产精品四虎 | 五月婷婷综合激情网 | 午夜影院在线观看18 | 久久在线免费观看视频 | 国产另类av | 免费三级av | 日韩专区一区二区 | av线上免费观看 | 免费观看丰满少妇做爰 | 超碰在线亚洲 | 亚洲精品www. | 久久亚洲福利 |