黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)

瀏覽:67日期:2023-07-26 10:36:04

環(huán)境配置:

JDK 版本:1.8 Caffeine 版本:2.8.0 SpringBoot 版本:2.2.2.RELEASE一、本地緩存介紹

緩存在日常開(kāi)發(fā)中啟動(dòng)至關(guān)重要的作用,由于是存儲(chǔ)在內(nèi)存中,數(shù)據(jù)的讀取速度是非常快的,能大量減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),減少數(shù)據(jù)庫(kù)的壓力。

之前介紹過(guò) Redis 這種 NoSql 作為緩存組件,它能夠很好的作為分布式緩存組件提供多個(gè)服務(wù)間的緩存,但是 Redis 這種還是需要網(wǎng)絡(luò)開(kāi)銷(xiāo),增加時(shí)耗。本地緩存是直接從本地內(nèi)存中讀取,沒(méi)有網(wǎng)絡(luò)開(kāi)銷(xiāo),例如秒殺系統(tǒng)或者數(shù)據(jù)量小的緩存等,比遠(yuǎn)程緩存更合適。

二、緩存組件 Caffeine 介紹

按 Caffeine Github 文檔描述,Caffeine 是基于 JAVA 8 的高性能緩存庫(kù)。并且在 spring5 (springboot 2.x) 后,spring 官方放棄了 Guava,而使用了性能更優(yōu)秀的 Caffeine 作為默認(rèn)緩存組件。

1、Caffeine 性能

可以通過(guò)下圖觀測(cè)到,在下面緩存組件中 Caffeine 性能是其中最好的。

Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)

2、Caffeine 配置說(shuō)明

參數(shù) 類型 描述 initialCapacity integer 初始的緩存空間大小 maximumSize long 緩存的最大條數(shù) maximumWeight long 緩存的最大權(quán)重 expireAfterAccess duration 最后一次寫(xiě)入或訪問(wèn)后經(jīng)過(guò)固定時(shí)間過(guò)期 refreshAfterWrite duration 最后一次寫(xiě)入后經(jīng)過(guò)固定時(shí)間過(guò)期 refreshAfterWrite duration 創(chuàng)建緩存或者最近一次更新緩存后經(jīng)過(guò)固定的時(shí)間間隔,刷新緩存 weakKeys boolean 打開(kāi) key 的弱引用 weakValues boolean 打開(kāi) value 的弱引用 softValues boolean 打開(kāi) value 的軟引用 recordStats - 開(kāi)發(fā)統(tǒng)計(jì)功能

注意:

weakValues 和 softValues 不可以同時(shí)使用。 maximumSize 和 maximumWeight 不可以同時(shí)使用。 expireAfterWrite 和 expireAfterAccess 同事存在時(shí),以 expireAfterWrite 為準(zhǔn)。3、軟引用與弱引用 軟引用: 如果一個(gè)對(duì)象只具有軟引用,則內(nèi)存空間足夠,垃圾回收器就不會(huì)回收它;如果內(nèi)存空間不足了,就會(huì)回收這些對(duì)象的內(nèi)存。 弱引用: 弱引用的對(duì)象擁有更短暫的生命周期。在垃圾回收器線程掃描它所管轄的內(nèi)存區(qū)域的過(guò)程中,一旦發(fā)現(xiàn)了只具有弱引用的對(duì)象,不管當(dāng)前內(nèi)存空間足夠與否,都會(huì)回收它的內(nèi)存

// 軟引用Caffeine.newBuilder().softValues().build();// 弱引用Caffeine.newBuilder().weakKeys().weakValues().build();三、SpringBoot 集成 Caffeine 兩種方式

SpringBoot 有倆種使用 Caffeine 作為緩存的方式:

方式一: 直接引入 Caffeine 依賴,然后使用 Caffeine 方法實(shí)現(xiàn)緩存。

方式二: 引入 Caffeine 和 Spring Cache 依賴,使用 SpringCache 注解方法實(shí)現(xiàn)緩存。

下面將介紹下,這倆中集成方式都是如何實(shí)現(xiàn)的。

Spring Boot 基礎(chǔ)就不介紹了,推薦看下這個(gè)教程:

https://github.com/javastacks/spring-boot-best-practice

四、SpringBoot 集成Caffeine 方式一

1、Maven 引入相關(guān)依賴

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent> <groupId>mydlq.club</groupId> <artifactId>springboot-caffeine-cache-example-1</artifactId> <version>0.0.1</version> <name>springboot-caffeine-cache-example-1</name> <description>Demo project for Spring Boot Cache</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

2、配置緩存配置類

import com.github.benmanes.caffeine.cache.Cache;import com.github.benmanes.caffeine.cache.Caffeine;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.concurrent.TimeUnit;@Configurationpublic class CacheConfig { @Bean public Cache<String, Object> caffeineCache() { return Caffeine.newBuilder() // 設(shè)置最后一次寫(xiě)入或訪問(wèn)后經(jīng)過(guò)固定時(shí)間過(guò)期 .expireAfterWrite(60, TimeUnit.SECONDS) // 初始的緩存空間大小 .initialCapacity(100) // 緩存的最大條數(shù) .maximumSize(1000) .build(); }}

3、定義測(cè)試的實(shí)體對(duì)象

import lombok.Data;import lombok.ToString;@Data@ToStringpublic class UserInfo { private Integer id; private String name; private String sex; private Integer age;}

4、定義服務(wù)接口類和實(shí)現(xiàn)類

UserInfoService

import mydlq.club.example.entity.UserInfo;public interface UserInfoService { /** * 增加用戶信息 * * @param userInfo 用戶信息 */ void addUserInfo(UserInfo userInfo); /** * 獲取用戶信息 * * @param id 用戶ID * @return 用戶信息 */ UserInfo getByName(Integer id); /** * 修改用戶信息 * * @param userInfo 用戶信息 * @return 用戶信息 */ UserInfo updateUserInfo(UserInfo userInfo); /** * 刪除用戶信息 * * @param id 用戶ID */ void deleteById(Integer id);}

UserInfoServiceImpl

import com.github.benmanes.caffeine.cache.Cache;import lombok.extern.slf4j.Slf4j;import mydlq.club.example.entity.UserInfo;import mydlq.club.example.service.UserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.util.StringUtils;import java.util.HashMap;@Slf4j@Servicepublic class UserInfoServiceImpl implements UserInfoService { /** * 模擬數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù) */ private HashMap<Integer, UserInfo> userInfoMap = new HashMap<>(); @Autowired Cache<String, Object> caffeineCache; @Override public void addUserInfo(UserInfo userInfo) { log.info('create'); userInfoMap.put(userInfo.getId(), userInfo); // 加入緩存 caffeineCache.put(String.valueOf(userInfo.getId()),userInfo); } @Override public UserInfo getByName(Integer id) { // 先從緩存讀取 caffeineCache.getIfPresent(id); UserInfo userInfo = (UserInfo) caffeineCache.asMap().get(String.valueOf(id)); if (userInfo != null){ return userInfo; } // 如果緩存中不存在,則從庫(kù)中查找 log.info('get'); userInfo = userInfoMap.get(id); // 如果用戶信息不為空,則加入緩存 if (userInfo != null){ caffeineCache.put(String.valueOf(userInfo.getId()),userInfo); } return userInfo; } @Override public UserInfo updateUserInfo(UserInfo userInfo) { log.info('update'); if (!userInfoMap.containsKey(userInfo.getId())) { return null; } // 取舊的值 UserInfo oldUserInfo = userInfoMap.get(userInfo.getId()); // 替換內(nèi)容 if (!StringUtils.isEmpty(oldUserInfo.getAge())) { oldUserInfo.setAge(userInfo.getAge()); } if (!StringUtils.isEmpty(oldUserInfo.getName())) { oldUserInfo.setName(userInfo.getName()); } if (!StringUtils.isEmpty(oldUserInfo.getSex())) { oldUserInfo.setSex(userInfo.getSex()); } // 將新的對(duì)象存儲(chǔ),更新舊對(duì)象信息 userInfoMap.put(oldUserInfo.getId(), oldUserInfo); // 替換緩存中的值 caffeineCache.put(String.valueOf(oldUserInfo.getId()),oldUserInfo); return oldUserInfo; } @Override public void deleteById(Integer id) { log.info('delete'); userInfoMap.remove(id); // 從緩存中刪除 caffeineCache.asMap().remove(String.valueOf(id)); }}

5、測(cè)試的 Controller 類

import mydlq.club.example.entity.UserInfo;import mydlq.club.example.service.UserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMappingpublic class UserInfoController { @Autowired private UserInfoService userInfoService; @GetMapping('/userInfo/{id}') public Object getUserInfo(@PathVariable Integer id) { UserInfo userInfo = userInfoService.getByName(id); if (userInfo == null) { return '沒(méi)有該用戶'; } return userInfo; } @PostMapping('/userInfo') public Object createUserInfo(@RequestBody UserInfo userInfo) { userInfoService.addUserInfo(userInfo); return 'SUCCESS'; } @PutMapping('/userInfo') public Object updateUserInfo(@RequestBody UserInfo userInfo) { UserInfo newUserInfo = userInfoService.updateUserInfo(userInfo); if (newUserInfo == null){ return '不存在該用戶'; } return newUserInfo; } @DeleteMapping('/userInfo/{id}') public Object deleteUserInfo(@PathVariable Integer id) { userInfoService.deleteById(id); return 'SUCCESS'; }}五、SpringBoot 集成 Caffeine 方式二

1、Maven 引入相關(guān)依賴

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent> <groupId>mydlq.club</groupId> <artifactId>springboot-caffeine-cache-example-2</artifactId> <version>0.0.1</version> <name>springboot-caffeine-cache-example-2</name> <description>Demo project for Spring Boot caffeine</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

2、配置緩存配置類

@Configurationpublic class CacheConfig { /** * 配置緩存管理器 * * @return 緩存管理器 */ @Bean('caffeineCacheManager') public CacheManager cacheManager() { CaffeineCacheManager cacheManager = new CaffeineCacheManager(); cacheManager.setCaffeine(Caffeine.newBuilder() // 設(shè)置最后一次寫(xiě)入或訪問(wèn)后經(jīng)過(guò)固定時(shí)間過(guò)期 .expireAfterAccess(60, TimeUnit.SECONDS) // 初始的緩存空間大小 .initialCapacity(100) // 緩存的最大條數(shù) .maximumSize(1000)); return cacheManager; }}

3、定義測(cè)試的實(shí)體對(duì)象

@Data@ToStringpublic class UserInfo { private Integer id; private String name; private String sex; private Integer age;}

4、定義服務(wù)接口類和實(shí)現(xiàn)類

服務(wù)接口

import mydlq.club.example.entity.UserInfo;public interface UserInfoService { /** * 增加用戶信息 * * @param userInfo 用戶信息 */ void addUserInfo(UserInfo userInfo); /** * 獲取用戶信息 * * @param id 用戶ID * @return 用戶信息 */ UserInfo getByName(Integer id); /** * 修改用戶信息 * * @param userInfo 用戶信息 * @return 用戶信息 */ UserInfo updateUserInfo(UserInfo userInfo); /** * 刪除用戶信息 * * @param id 用戶ID */ void deleteById(Integer id);}

服務(wù)實(shí)現(xiàn)類

import lombok.extern.slf4j.Slf4j;import mydlq.club.example.entity.UserInfo;import mydlq.club.example.service.UserInfoService;import org.springframework.cache.annotation.CacheConfig;import org.springframework.cache.annotation.CacheEvict;import org.springframework.cache.annotation.CachePut;import org.springframework.cache.annotation.Cacheable;import org.springframework.stereotype.Service;import org.springframework.util.StringUtils;import java.util.HashMap;@Slf4j@Service@CacheConfig(cacheNames = 'caffeineCacheManager')public class UserInfoServiceImpl implements UserInfoService { /** * 模擬數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù) */ private HashMap<Integer, UserInfo> userInfoMap = new HashMap<>(); @Override @CachePut(key = '#userInfo.id') public void addUserInfo(UserInfo userInfo) { log.info('create'); userInfoMap.put(userInfo.getId(), userInfo); } @Override @Cacheable(key = '#id') public UserInfo getByName(Integer id) { log.info('get'); return userInfoMap.get(id); } @Override @CachePut(key = '#userInfo.id') public UserInfo updateUserInfo(UserInfo userInfo) { log.info('update'); if (!userInfoMap.containsKey(userInfo.getId())) { return null; } // 取舊的值 UserInfo oldUserInfo = userInfoMap.get(userInfo.getId()); // 替換內(nèi)容 if (!StringUtils.isEmpty(oldUserInfo.getAge())) { oldUserInfo.setAge(userInfo.getAge()); } if (!StringUtils.isEmpty(oldUserInfo.getName())) { oldUserInfo.setName(userInfo.getName()); } if (!StringUtils.isEmpty(oldUserInfo.getSex())) { oldUserInfo.setSex(userInfo.getSex()); } // 將新的對(duì)象存儲(chǔ),更新舊對(duì)象信息 userInfoMap.put(oldUserInfo.getId(), oldUserInfo); // 返回新對(duì)象信息 return oldUserInfo; } @Override @CacheEvict(key = '#id') public void deleteById(Integer id) { log.info('delete'); userInfoMap.remove(id); }}

5、測(cè)試的 Controller 類

import mydlq.club.example.entity.UserInfo;import mydlq.club.example.service.UserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMappingpublic class UserInfoController { @Autowired private UserInfoService userInfoService; @GetMapping('/userInfo/{id}') public Object getUserInfo(@PathVariable Integer id) { UserInfo userInfo = userInfoService.getByName(id); if (userInfo == null) { return '沒(méi)有該用戶'; } return userInfo; } @PostMapping('/userInfo') public Object createUserInfo(@RequestBody UserInfo userInfo) { userInfoService.addUserInfo(userInfo); return 'SUCCESS'; } @PutMapping('/userInfo') public Object updateUserInfo(@RequestBody UserInfo userInfo) { UserInfo newUserInfo = userInfoService.updateUserInfo(userInfo); if (newUserInfo == null){ return '不存在該用戶'; } return newUserInfo; } @DeleteMapping('/userInfo/{id}') public Object deleteUserInfo(@PathVariable Integer id) { userInfoService.deleteById(id); return 'SUCCESS'; }}

參考地址:

https://www.jianshu.com/p/c72fb0c787fchttps://www.cnblogs.com/rickiyang/p/11074158.htmlhttps://github.com/my-dlq/blog-example/tree/master/springboot/springboot-caffeine-cache-example

到此這篇關(guān)于Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine的文章就介紹到這了,更多相關(guān)Spring Boot 2.x Caffeine內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 69式视频 | 亚洲www啪成人一区二区 | 欧美精品亚洲精品日韩精品 | 国产艳妇av在线观看果冻传媒 | 91精品久久久久久久久青青 | 成人做爰高潮片免费视频九九九 | 五月激情六月丁香 | 亚洲午夜久久久久久久久久久 | 国产无遮挡又黄又爽免费软件 | 污视频免费网站 | 国产激情视频在线 | 日本一区二区高清不卡 | 欧美成人综合 | 俄罗斯毛片基地 | 黄色片成人 | 老妇做爰xxx视频一区二区三区 | 亚洲精品色情app在线下载观看 | 国产真实老熟女无套内射 | 91蝌蚪91porny国语 | 国产在线永久视频 | 欧美最顶级丰满的aⅴ艳星 欧美最黄视频 | 天堂资源在线播放 | 草草影院ccyycom | 久久亚洲中文字幕不卡一二区 | 999国产精品视频免费 | 成年午夜视频 | 欧美xxxxx高潮喷水麻豆 | 国产足控在线网站 | 欧美大尺度床戏做爰 | 久草视频在线资源 | 国产黄网永久免费视频大全 | 国产女人久久精品视 | 日韩在线免费视频 | 国产97人人超碰caoprom | 久久人人干 | 欧美日韩一级视频 | 4438xx亚洲最大五色丁香一 | 四虎影视在线播免费观看 | 午夜剧场在线 | 野战视频aaaaa免费观看 | 欧美黑丝少妇 | 特黄特色大片免费播放 | 亚洲一区二区三区精品动漫 | 精品99在线观看 | 玖玖zyz| 无码av动漫精品一区二区免费 | 日本一二三不卡视频 | 国产精彩视频一区 | ass亚洲日本嫩体私拍ass | 国产精品揄拍一区二区 | 亚洲精品字幕 | 国产玖玖在线 | 亚洲国产一区二区a毛片 | 捆绑白丝粉色jk震动捧喷白浆 | 日本大尺度激情做爰hd | 97香蕉碰碰人妻国产欧美 | 久久久久久av无码免费网站 | 亚洲+小说+欧美+激情+另类 | 亚洲综合不卡 | 亚洲人成色777777精品音频 | 欧美乱插 | 欧美乱大交做爰xxxⅹ小说 | 五月婷婷一区二区 | 18禁高潮出水呻吟娇喘蜜芽 | 亚洲成av人片天堂网老年人 | 欧美国产日韩久久 | 国产精品欧美一区二区三区喷水 | 一区二区免费在线观看视频 | 欧美一区二区三区免费在线观看 | 成人h免费观看视频 | 国产一区二区视频播放 | 91福利在线观看 | 精品无码午夜福利理论片 | 久草福利资源在线观看 | 激情久久av一区av二区av三区 | 国产一二三四在线 | 日韩欧美视频免费观看 | 久久免费看少妇a高潮一片黄特 | 性史性农村dvd毛片 永久黄网站色视频免费直播 | 成人手机在线播放 | 超碰这里只有精品 | 色婷婷丁香 | 国产大奶在线 | 成人在线三级 | 国产va免费精品观看 | 国产色91 | 国产成人无码精品午夜福利a | 日本三级免费看 | 亚洲日韩中文无码久久 | 成人亚洲欧美成αⅴ人在线观看 | 国产98色在线 | 日韩 | 动漫卡通精品一区二区三区介绍 | 欧美黑人精品一区二区不卡 | 亚洲精品1 | 成人乱人乱一区二区三区 | 91蝌蚪| 999福利视频 | 玩弄japan白嫩少妇hd | 亚洲欧美成人精品香蕉网 | 制服丝袜国产在线 | 性一交一乱一色一情丿按摩 | 精品国产二区三区 | 少妇高跟鞋做爰20p 少妇和黑人老外做爰av | 日韩欧美的一区二区 | 国产又粗又硬又大爽黄老大爷视 | 性欧美成人播放77777 | 久久综合88熟人妻 | 国产午夜鲁丝片av无码 | 人人搞人人插 | 国产高清视频在线免费观看 | 91免费在线视频 | 亚洲精品国品乱码久久久久 | 日韩一区二区三区在线观看视频 | 九九热视频在线免费观看 | 韩国无码无遮挡在线观看 | 激情小说专区 | 日韩视频免费 | 丰满老女人乱妇dvd在线播放 | 欧美在线视频播放 | 久久久久人人 | 在线观看视频免费入口 | 明星换脸av一区二区三区网站 | 男女做爰猛烈吃奶摸九色 | 2018国产精华国产精品 | 1级黄色大片儿 | 欧美性生活网址 | 粉嫩av.com | 国产在线短视频 | 黄页网址大全免费观看 | 国产日本一区二区 | 四虎影库在线播放 | 久久精品中文字幕 | 美女十八毛片 | 久久久亚洲欧洲日产国码αv | 德国艳星videos极品hd | 国产九九在线 | 亚洲福利视频在线 | 精品福利视频一区二区三区 | 干欧美少妇 | 自拍偷自拍亚洲精品播放 | 国产又粗又硬又大爽黄 | 自拍偷拍视频网 | 国产一区二区三区 | 国产 麻豆 日韩 欧美 久久 | 中文字幕一区二区三区四区五区 | 真人啪啪高潮喷水呻吟无遮挡 | 中文字幕无码免费久久99 | 成人av一区二区免费播放 | 国产裸拍裸体视频在线观看 | 欧洲成人午夜免费大片 | 黄页嫩草 | 中国少妇xxxx做受视频 | 国产精品女同一区二区软件 | 国产午夜三级一区二区三桃花影视 | 国产成人精品一区二区秒拍 | 日韩狠狠| 韩国久久久久久 | 欧美日韩理论片 | 麻豆高清| 97成人免费视频 | 欧美性猛交久久久乱大交小说 | 日本xxxwww在线观看 | 亚洲日韩中文字幕一区 | 午夜免费看视频 | 自拍性旺盛老熟女 | 亚洲一区二区三区成人 | 色爱激情网 | 国产日韩欧美中文字幕 | 色诱久久久久综合网ywww | 色妹子综合 | 精品欧美一区二区三区精品久久 | 亚洲夜夜爱| 国模无码视频一区 | 亚洲国产午夜精品理论片妓女 | 丝袜精品 欧美 亚洲 自拍 | 女人18毛片毛片毛片毛片区二 | 四虎av在线 | 蜜桃狠狠色伊人亚洲综合网站 | 亚洲视频免费观看 | 国产伦精品一区二区三区四区免费 | 嫩草影院黄色 | 男女啪啪做爰高潮免费网站 | 日本人xxxxxxxxx泡妞 | 狠狠五月激情六月丁香 | 日韩欧美理论片 | 久久99精品久久久久久按摩秒播 | www激情| 一本一本久久a久久精品综合妖精 | 波多野结衣一区二区 | 伊人春色网站 | 亚洲欧洲国产精品 | 狂猛欧美激情性xxxx大豆行情 | 欧美色xxx| 99国产精品人妻噜啊噜 | 国产学生美女无遮拦高潮视频 | av中文字幕网站 | 日韩av片在线播放 | 两口子交换真实刺激高潮 | 国产女人叫床高潮大片免费 | 欧美性猛交ⅹxxx乱大交3 | 亚洲乱视频 | 欧洲熟妇色xxxx欧美老妇 | 99re视频这里只有精品 | 免费看三级黄色片 | 熟女熟妇伦av网站 | 91在线观看免费视频 | 亚a∨国av综av涩涩涩 | 亚欧洲精品在线 | 成人国产精品视频国产 | 精品久久伊人 | 成人一级网站 | 日本特级黄色 | 亚洲国产精品日韩av不卡在线 | 日韩精品视频在线免费观看 | 亚洲自拍偷拍精品 | 国产精品美女久久久久久久久久久 | 日韩欧美在线视频 | 女教师~淫辱のavhd101 | 亚洲视频国产 | 高清欧美精品xxxxx在线看 | 99久久影院 | 亚洲日韩精品欧美一区二区 | 7799精品视频天天看 | 丁香美女社区 | 久久资源总站 | 成人91av | 欧洲精品一区二区三区 | 国产乱子伦视频在线播放 | 免费观看国产精品视频 | 国产爽爽久久影院潘金莲 | 麻豆免费观看视频 | 性xxx欧美| 无套内射蜜桃小视频 | 大肉大捧一进一出好爽视频mba | 日韩一本之道一区中文字幕 | 国产不卡a| 草久久av | 在线成人www免费观看视频 | 日韩精品大片 | 久久久久久久久久网站 | 国产v亚洲v天堂a无码 | 成人免费看黄网站在线观看 | 日韩色图视频 | 日韩精品极品视频在线观看免费 | 欧美日韩亚洲国产另类 | 超碰碰97| 青青操在线观看视频 | 久久久久久久精 | 午夜精品久久久久久久99 | 麻豆最新网址 | 亚洲乱码一区二区 | 国产美女网站 | 中文字幕无码免费久久99 | 91性色| 北条麻妃一区二区三区av高清 | 国产 剧情 在线 精品 | 欧美一级一区二区 | 漂亮人妻被中出中文字幕 | 女性高爱潮视频 | 婷婷成人综合激情在线视频播放 | 女人夜夜春高潮爽a∨片传媒 | 婷婷五月综合激情 | 亚洲中文字幕高清有码在线 | 亚洲精品日韩在线 | 国产91富婆露脸刺激对白 | 亚洲国产精品久久人人爱潘金莲 | 国产免费久久精品国产传媒 | 98国产精品综合一区二区三区 | 最新国产精品精品视频 | 国产白嫩初高中害羞小美女 | 人人妻人人澡人人爽人人精品 | 91久久国产 | 北条麻妃在线一区二区免费播放 | 光明影院手机版在线观看免费 | 特黄毛片杨钰莹 | 国产老头和老头xxxxx免费 | 久久久噜久噜久久综合 | 亚洲另类激情视频 | 蜜乳av懂色av粉嫩av | 久久99精品国产 | av大片在线播放 | 国产羞羞 | 一个色综合网 | 国产无精乱码一区二区三区 | 杨幂一区二区三区免费看视频 | 日本免费在线观看视频 | 国産精品久久久久久久 | 国产乱码精品一区二区蜜臀 | 亚洲人妖女同在线播放 | 在线播放成人 | 免费中文字幕在线观看 | 天天做天天爱夜夜爽毛片毛片 | 色欲aⅴ亚洲情无码av蜜桃 | 深夜福利麻豆 | 日韩精品射精管理在线观看 | 日韩毛片一级 | www91麻豆 | 视频在线观看h | 又大又粗欧美黑人aaaaa片 | 国产毛片精品 | 国产成人三级一区二区在线观看一 | 国产永久av | 中文字幕在线观看网址 | 香蕉久久久 | 久久99精品国产自在现线小黄鸭 | 中文字幕久久av | 毛片高清 | 欧美三级特黄 | 亚洲综合精品伊人久久 | 爱爱视频网站免费 | 欧美日韩国产一区二区三区 | 亚洲人妖女同在线播放 | 亚洲一区二区三区乱码aⅴ蜜桃女 | 久久久久逼 | 亚洲国产va精品久久久不卡综合 | 国产无套精品一区二区三区 | 第四色激情 | 国产va免费精品观看 | 91制片厂麻花 | 成人免费看吃奶视频网站 | 亚洲女人av| 久久综合五月丁香久久激情 | 国产国语性生话播放 | 久久aⅴ国产紧身牛仔裤 | 7777精品久久久大香线蕉小说 | 免费a网站 | 青娱乐超碰在线 | 广州毛片 | 欧美精品久久96人妻无码 | 国产精品激情av久久久青桔 | 88国产精品欧美一区二区三区 | 综合爱爱网| 国产精品免费一区二区 | 老牛嫩草一区二区三区日本 | 欧美日韩综合一区 | 国产精品亚洲成在人线 | 国产91小视频 | 黄色片网站在线播放 | av午夜久久蜜桃传媒软件 | 中文字幕日韩精品亚洲七区 | 国产精品久久久久久久成人午夜 | 国产精品精华液网站 | 2018国产在线| 欧美大片大全 | 九色综合网| 亚洲熟妇色xxxxx欧美老妇y | av福利在线播放 | 欧美亚洲人成网站在线观看 | 国产精品亚洲成在人线 | 久久久久se色偷偷亚洲精品av | 九色一区二区 | 亚洲欧美日韩愉拍自拍 | 色综合色天天久久婷婷基地 | 精品日韩一区二区三区 | 国产精品自在在线午夜免费 | 在线观看一区二区三区四区 | 久久久久久久久久久小说 | 乱女午夜精品一区二区三区 | 亚洲va久久久噜噜噜久久 | 亚洲精品一区二区冲田杏梨 | 国产欧美一区二区精品性 | 亚洲 a v无 码免 费 成 人 a v | 奇米影视一区二区三区 | 国产乱女淫av麻豆国产 | 国产精品美女久久久久久久 | 狠狠干狠狠爱 | 国产女主播自拍 | 性色av无码一区二区三区人妻 | 黄色录像毛片 | 国产又粗又猛又大爽老大爷 | 日韩国产成人 | 成人黄色激情网 | 亚洲色图视频在线观看 | 日本一区二区三区视频在线播放 | 亚洲精品免费在线观看 | 欧美精品一区二区三区四区五区 | 国产精品午夜福利视频234区 | 国产亚洲精品网站 | 韩国美女啪啪 | 国产在线精品一区在线观看 | 国产伦精品一区二区三区妓女 | av资源在线播放 | 夜鲁鲁鲁夜夜综合视频 | 四虎永久免费 | 日本视频高清一区二区三区 | 国产婷婷色综合av蜜臀av | 中文字幕av播放 | 国产福利视频一区二区 | 久色视频在线播放 | 国产黄色网址在线观看 | 四虎影视在线影院在线观看免费视频 | 日本少妇做爰全过程二区 | 噜噜噜久久久 | 高清不卡一区 | 艳妇荡女欲乱双飞两中年熟妇 | 欧美精品国产动漫 | 无码精品一区二区三区免费视频 | 野花社区www高清视频 | 亚洲黄色免费网站 | 成人乱淫av日日摸夜夜爽节目 | 青青青爽久久午夜综合久久午夜 | 一区精品二区国产 | 日韩精品中字 | 秋霞成人午夜鲁丝一区二区三区 | 国产码在线播放 | 亚洲乱码国产乱码 | 中文免费视频 | 亚洲欧美v国产一区二区 | 成人三级图片 | av免费观看网站 | 性人久久久久 | 人人草人人澡 | 精品成人一区 | 中文字幕va一区二区三区 | 成人做爰999 | 免费无码又爽又刺激高潮 | 大尺度av在线 | 人成午夜免费视频在线观看 | 日日夜夜中文字幕 | 97人妻天天摸天天爽天天 | 全肉乱妇杂乱视频在线观看 | 海量av | 综合自拍亚洲综合图区高清 | 午夜视频在线播放 | 无人在线观看高清视频 | www国产www| 国产一级美女视频 | 国产极品粉嫩福利姬萌白酱 | 欧美三级韩国三级日本三斤在线观看 | 天堂成人| 久久人人爽人人爽人人av | 男女男精品视频站 | 日本一区免费视频 | 亚洲精品国产精 | 日韩中文幕 | 538任你躁精品视频网免费 | 中文一二区 | 国产精品久久久久久久岛一本蜜乳 | 极品美女白嫩呻吟湿淋淋照片 | 欧美精品久久天天躁 | 亚洲啪啪av | 免费观看黄网站 | 亚洲视频免费播放 | 99久久人妻精品免费二区 | 亚洲清纯国产 | 亚洲国产一区二区三区日本久久久 | 欧美疯狂做受xxxxx高潮 | 一本大道伊人av久久乱码 | 曰本女人牲交全视频播放 | 色情无码www视频无码区小黄鸭 | 性欧美18-19sex性高清播放 | 超碰精品 | 日韩欧美中文一区 | 国产在线精品一区二区三区直播 | 欧美精品与黑人又粗又长 | 国产又黄又猛又粗又爽的视频 | 欧美日韩五月天 | 性视频免费的视频大全2015年 | 香蕉久热 | 97干在线| 丰满少妇在线观看bd | 久久久人成影片免费观看 | 91理论片午午伦夜理片久久 | 日日夜夜天天操 | 性欧美69 | 国产综合无码一区二区色蜜蜜 | 久久久日韩精品一区二区三区 | a级黄色影片 | 九一福利视频 | 永久免费未满蜜桃 | 国产在线观看99 | 国产大学生粉嫩无套流白浆 | av无码av天天av天天爽 | 国内久久久久 | 成人看片在线观看 | 日本一区二区在线免费观看 | 久久久橹橹橹久久久久高清 | 欧美日性视频 | 仁科百华av解禁在线播放 | sm捆绑一区二区三区 | 久久亚洲国产成人精品性色 | 亚洲精品成人网站在线观看 | 黄色一级片在线免费观看 | 亚洲97| 亚洲乱妇老熟女爽到高潮的片 | jizz视频 | 国产精品丝袜在线 | 欧美一区二区二区 | 人人草网站 | 国产三级福利 | 日本成人在线免费 | 日韩在线第二页 | 久久久久久爱 | 国产亚洲无线码一区二区 | 中文字幕人妻第一区 | 极品美妇后花庭翘臀娇吟小说 | 欧美在线 | 亚洲 | 国产成人无码精品午夜福利a | 男女羞羞视频网站 | 刘亦菲毛片一区二区三区 | 久久国内视频 | 国产午夜精品一区二区三 | 插插插操操操 | 日老女人视频 | 爆操日本美女 | 狠狠色噜噜狠狠狠狠色综合久 | 欧洲男女做爰免费视频 | 午夜av福利 | 无遮挡啪啪摇乳动态图 | 97人人澡人人爽人人模亚洲 | 欧美顶级毛片在线播放 | 精品无人乱码一区二区三区的优势 | 国产亚洲精品久久久久四川人 | 夜夜未满十八勿进的爽爽影院 | 中文字幕一卡二卡三卡 | 国产精品第 | 色屁屁网站 | 久久国产精品久久久久久电车 | jjzz日本视频 | 亚洲欧美日韩三级 | 国产一级二级在线观看 | 亚洲精品白浆高清久久久久久 | 中文字幕人妻互换av久久 | 肥臀浪妇太爽了快点再快点 | 天天干夜夜躁 | 爱情岛论坛亚洲自拍 | aaaaa国产欧美一区二区 | 中日韩精品视频 | 青娱乐精品视频 | www国产国人免费观看视频 | 亚洲国产福利成人一区二区 | 欧美激情综合五月色丁香小说 | 视频在线观看一区二区三区 | 伊人春色网站 | 日韩精品中文在线 | 黑人巨大精品欧美一区二区, | 伊人久久婷婷五月综合97色 | 久久日本三级韩国三级 | 性色av蜜臀av浪潮av老女人 | 国产人妻精品一区二区三区 | 无码一区二区三区在线观看 | 美女无遮挡免费视频网站 | 亚洲激情小视频 | 视频一区二区三区在线观看 | 97人妻成人免费视频 | 色妇av| 2020无码专区人妻系列日韩 | 国产精品福利小视频 | 中文字幕日韩精品亚洲七区 | 无码人妻精品一区二区三区99不卡 | 97香蕉久久超级碰碰高清版 | 天天噜 | 国产精品国产 | 99精品大学生啪啪自拍 | 制服丝袜在线第一页 | 97se亚洲精品一区 | 国产一区二区三区四区五区加勒比 | 久久久久无码精品国产h动漫 | 亚洲成a人片777777久久 | 99热精品在线 | 日本三级欧美三级人妇视频黑白配 | 这里只有精品在线观看 | 91精品国产乱码久久久久久张柏芝 | 天堂在线中文8 | 丁香婷婷色 | 国产在线视频导航 | 日韩欧美亚洲国产 | 99久热re在线精品99 6热视频 | 无码午夜福利片 | 免费人成年激情视频在线观看 | 日韩欧美高清在线 | 日韩av在线播放观看 | 免费观看成人在线视频 | 丁香六月综合 | 玖玖爱国产 | 性猛交ⅹxxx乱大交大片 | 亚洲国产精品无卡做爰天天 | 夜夜天天操 | 欧美日韩一级二级三级 | 羞羞av.tv| 国产精品a一区二区三区网址 | 欧美午夜理伦三级在线观看 | 欧美性猛交乱大交xxxx | 99国产精品入口 | 涩涩视频网站在线观看 | 午夜 国产| 毛多水多www偷窥小便 | av无码国产在线看免费网站 | 国产精品入口麻豆原神 | 亚洲一级精品 | 中文在线天堂资源 | 在线观看91精品国产网站 | 射久久久| 中文字幕精品视频在线观看 | www..com18午夜观看 | 猫咪av网| 国产精品厕所 | 国产91精清纯白嫩高中在线观看 | 国产欧美日韩综合精品一区二区 | 美女日日日 | 2021国产精品视频 | 女人裸体性做爰23 | 老熟女高潮一区二区三区 | 无码午夜福利片 | jzzijzzij亚洲农村妇女 | 亚洲欧美激情精品一区二区 | 特黄一级片 | 国产乱淫av片免费观看 | 精品国产传媒 | 女学生的大乳中文字幕 | 中文字幕精品av乱喷 | 毛片基地在线播放 | 91免费精品 | 噜噜吧噜噜色 | 中文字幕一本一二本迫 |