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

從零搭建Spring Boot腳手架:整合Redis作為緩存

存儲 存儲軟件 Redis
今天我們會把緩存也集成進來。緩存是一個系統(tǒng)應(yīng)用必備的一種功能,除了在減輕數(shù)據(jù)庫的壓力之外。

[[338457]]

前言

 今天我們會把緩存也集成進來。緩存是一個系統(tǒng)應(yīng)用必備的一種功能,除了在減輕數(shù)據(jù)庫的壓力之外。還在存儲一些短時效的數(shù)據(jù)場景中發(fā)揮著重大作用,比如存儲用戶Token、短信驗證碼等等,目前緩存的選型還是比較多的,EHCACHE、HAZELCAST、CAFFEINE、COUCHBASE以及本文要整合的REDIS。接下來我們將會在kono腳手架項目中集成Spring Cache以及Redis。

Gitee: https://gitee.com/felord/kono day05 分支

GitHub: https://github.com/NotFound403/kono day05 分支

2. 整合目標(biāo)

使項目具有緩存功能,同時將默認(rèn)的JDK序列化修改為Jackson序列化以存儲一些對象,同時實現(xiàn)一些特定的個性化的緩存空間以滿足不同場景下的不同緩存TTL時間需求。

3. 依賴集成

目前只需要引入下面的依賴即可:

  1.  <dependency> 
  2.     <groupId>org.springframework.boot</groupId> 
  3.     <artifactId>spring-boot-starter-data-redis</artifactId> 
  4. </dependency> 
  5. <dependency> 
  6.     <groupId>org.springframework.boot</groupId> 
  7.     <artifactId>spring-boot-starter-cache</artifactId> 
  8. </dependency> 
  9. <dependency> 
  10.     <groupId>org.apache.commons</groupId> 
  11.     <artifactId>commons-pool2</artifactId> 
  12. </dependency> 

默認(rèn)情況下spring-data-redis使用高性能的lettuce客戶端實現(xiàn),當(dāng)然你可以替換為老舊的jedis。

4. 緩存及 Redis 配置

緩存以及Redis相關(guān)的配置項分別為spring.cache和spring.redis開頭的配置,這里比較簡單的配置為:

  1. spring: 
  2.   redis: 
  3.     host: localhost 
  4.     port: 6379 
  5.   cache: 
  6. #   type: REDIS 
  7.     redis: 
  8.     # 全局過期時間 
  9.       time-to-live: 120 

5. RedisTemplate 個性化

默認(rèn)情況下會有兩個模板類被注入Spring IoC供我們使用,需要個性化配置來滿足實際的開發(fā)。

一個是RedisTemplate<Object, Object>,主要用于對象緩存,其默認(rèn)使用JDK序列化,我們需要更改其序列化方式解決一些問題,比如Java 8日期問題、JSON序列化問題。需要我們重寫一下。

  1. /** 
  2.  * Redis的一些自定義配置. 
  3.  * 
  4.  * @author felord.cn 
  5.  * @since 2020 /8/17 20:39 
  6.  */ 
  7. @ConditionalOnClass(ObjectMapper.class) 
  8. @Configuration(proxyBeanMethods = false
  9. public class RedisConfiguration { 
  10.     /** 
  11.      * Redis template redis template. 
  12.      * 
  13.      * @param redisConnectionFactory the redis connection factory 
  14.      * @return the redis template 
  15.      */ 
  16.     @Bean("redisTemplate"
  17.     public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { 
  18.         RedisTemplate<Object, Object> template = new RedisTemplate<>(); 
  19.         template.setConnectionFactory(redisConnectionFactory); 
  20.         // 使用Jackson2JsonRedisSerialize 替換默認(rèn)序列化 
  21.         Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = initJacksonSerializer(); 
  22.         // 設(shè)置value的序列化規(guī)則和 key的序列化規(guī)則 
  23.         template.setValueSerializer(jackson2JsonRedisSerializer); 
  24.         template.setKeySerializer(new StringRedisSerializer()); 
  25.         template.afterPropertiesSet(); 
  26.         return template; 
  27.     } 
  28.  
  29.     /** 
  30.      * 處理redis序列化問題 
  31.      * @return Jackson2JsonRedisSerializer 
  32.      */ 
  33.     private Jackson2JsonRedisSerializer<Object> initJacksonSerializer() { 
  34.         Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); 
  35.         ObjectMapper om = new ObjectMapper(); 
  36.         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); 
  37.         //以下替代舊版本 om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 
  38.         om.activateDefaultTyping(om.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL); 
  39.         //bugFix Jackson2反序列化數(shù)據(jù)處理LocalDateTime類型時出錯 
  40.         om.disable(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS); 
  41.         // java8 時間支持 
  42.         om.registerModule(new JavaTimeModule()); 
  43.         jackson2JsonRedisSerializer.setObjectMapper(om); 
  44.         return jackson2JsonRedisSerializer; 
  45.     } 
  46.  

另一個是StringRedisTemplate,主要處理鍵值都是字符串的緩存,采用默認(rèn)就好。

6. 緩存?zhèn)€性化

使用Spring Cache做緩存的時候,有針對不同的key設(shè)置不同過期時間的場景。比如Jwt Token我想設(shè)置為一周過期,而驗證碼我想設(shè)置為五分鐘過期。這個怎么實現(xiàn)呢?需要我們個性化配置RedisCacheManager。首先我通過枚舉來定義這些緩存及其TTL時間。例如:

  1. /** 
  2.  * 緩存定義枚舉 
  3.  * 
  4.  * @author felord.cn 
  5.  * @see cn.felord.kono.configuration.CacheConfiguration 
  6.  * @since 2020/8/17 21:40 
  7.  */ 
  8.  
  9. public enum CacheEnum { 
  10.  
  11.     /** 
  12.      * 用戶jwt token 緩存空間 ttl 7天 
  13.      */ 
  14.     JWT_TOKEN_CACHE("usrTkn", 7 * 24 * 60 * 60), 
  15.     /** 
  16.      * 驗證碼緩存 5分鐘ttl 
  17.      */ 
  18.     SMS_CAPTCHA_CACHE("smsCode", 5 * 60); 
  19.  
  20.     /** 
  21.      * 緩存名稱 
  22.      */ 
  23.     private final String cacheName; 
  24.     /** 
  25.      * 緩存過期秒數(shù) 
  26.      */ 
  27.     private final int ttlSecond; 
  28.  
  29.     CacheEnum(String cacheName, int ttlSecond) { 
  30.         this.cacheName = cacheName; 
  31.         this.ttlSecond = ttlSecond; 
  32.     } 
  33.  
  34.     public String cacheName() { 
  35.         return this.cacheName; 
  36.     } 
  37.  
  38.  
  39.     public int ttlSecond() { 
  40.         return this.ttlSecond; 
  41.     } 

這樣就能很清楚地描述個性化的緩存了。

然后我們通過向Spring IoC分別注入RedisCacheConfiguration和RedisCacheManagerBuilderCustomizer來個性化配置,你可以留意CacheEnum是如何工作的。如果你有其它的個性化需要也可以對這兩個配置類進行定制化。

  1. import cn.felord.kono.enumeration.CacheEnum; 
  2. import org.springframework.boot.autoconfigure.cache.CacheProperties; 
  3. import org.springframework.boot.autoconfigure.cache.RedisCacheManagerBuilderCustomizer; 
  4. import org.springframework.cache.annotation.EnableCaching; 
  5. import org.springframework.context.annotation.Bean; 
  6. import org.springframework.context.annotation.Configuration; 
  7. import org.springframework.data.redis.cache.RedisCacheConfiguration; 
  8. import org.springframework.data.redis.cache.RedisCacheManager; 
  9. import org.springframework.data.redis.core.RedisTemplate; 
  10. import org.springframework.data.redis.serializer.RedisSerializationContext; 
  11.  
  12. import java.time.Duration; 
  13. import java.util.EnumSet; 
  14. import java.util.stream.Collectors; 
  15.  
  16. /** 
  17.  * redis 緩存配置. 
  18.  * 
  19.  * @author felord.cn 
  20.  * @since 2020 /8/17 20:14 
  21.  */ 
  22. @EnableCaching 
  23. @Configuration 
  24. public class CacheConfiguration { 
  25.  
  26.  
  27.     /** 
  28.      * Redis cache configuration. 
  29.      * 
  30.      * @param redisTemplate the redis template 
  31.      * @return the redis cache configuration 
  32.      */ 
  33.     @Bean 
  34.     public RedisCacheConfiguration redisCacheConfiguration(RedisTemplate<Object, Object> redisTemplate, CacheProperties cacheProperties) { 
  35.          // 參見 spring.cache.redis 
  36.         CacheProperties.Redis redisProperties = cacheProperties.getRedis(); 
  37.  
  38.         RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() 
  39.                 // 緩存的序列化問題 
  40.                 .serializeValuesWith(RedisSerializationContext.SerializationPair 
  41.                         .fromSerializer(redisTemplate.getValueSerializer())); 
  42.  
  43.         if (redisProperties.getTimeToLive() != null) { 
  44.             // 全局 TTL 時間 
  45.             redisCacheConfiguration = redisCacheConfiguration.entryTtl(redisProperties.getTimeToLive()); 
  46.         } 
  47.         if (redisProperties.getKeyPrefix() != null) { 
  48.             // key 前綴值 
  49.             redisCacheConfiguration = redisCacheConfiguration.prefixCacheNameWith(redisProperties.getKeyPrefix()); 
  50.         } 
  51.         if (!redisProperties.isCacheNullValues()) { 
  52.             // 默認(rèn)緩存null值 可以防止緩存穿透 
  53.             redisCacheConfiguration = redisCacheConfiguration.disableCachingNullValues(); 
  54.         } 
  55.         if (!redisProperties.isUseKeyPrefix()) { 
  56.             // 不使用key前綴 
  57.             redisCacheConfiguration = redisCacheConfiguration.disableKeyPrefix(); 
  58.         } 
  59.         return redisCacheConfiguration; 
  60.     } 
  61.  
  62.  
  63.     /** 
  64.      * Redis cache manager 個性化配置緩存過期時間. 
  65.      * @see RedisCacheManager,CacheEnum 
  66.      * @return the redis cache manager builder customizer 
  67.      */ 
  68.     @Bean 
  69.     public RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer(RedisCacheConfiguration redisCacheConfiguration) { 
  70.  
  71.         return builder -> builder.cacheDefaults(redisCacheConfiguration) 
  72.                 // 自定義的一些緩存配置初始化 主要是特定緩存及其ttl時間 
  73.                 .withInitialCacheConfigurations(EnumSet.allOf(CacheEnum.class).stream() 
  74.                         .collect(Collectors.toMap(CacheEnum::cacheName, 
  75.                                 cacheEnum -> redisCacheConfiguration.entryTtl(Duration.ofSeconds(cacheEnum.ttlSecond()))))); 
  76.     } 
  77.  

個性化的同時我們可以通過@EnableCaching開啟Spring Cache緩存支持。關(guān)于Spring Cache的細(xì)節(jié)可以通過文章Spring Cache 詳解來了解。

 

驗證Spring Cache Redis緩存?zhèn)€性化

 

請注意,只有通過Spring Cache操作緩存才會達(dá)到上圖的效果。命令行操作需要顯式的聲明指令。

7. 總結(jié)

最近事情比較多,所以難得抽出時間來搞一搞。如果你在實際開發(fā)中遇到需要整合的功能也可以告訴我,同時如果你發(fā)現(xiàn)整合中的一些缺陷或者 Bug 請?zhí)峤? ISSUE。多多關(guān)注:碼農(nóng)小胖哥,跟我一起整合開發(fā)腳手架。

 本文轉(zhuǎn)載自微信公眾號「碼農(nóng)小胖哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)小胖哥公眾號。碼農(nóng)小胖哥  

 

責(zé)任編輯:武曉燕 來源: 碼農(nóng)小胖哥
相關(guān)推薦

2021-07-13 18:42:38

Spring Boot腳手架開發(fā)

2021-09-01 10:07:43

開發(fā)零搭建Groovy

2021-03-09 17:11:09

數(shù)據(jù)庫腳手架開發(fā)

2021-04-28 16:10:48

開發(fā)腳手架 Spring

2021-03-11 14:16:47

Spring Boo開發(fā)腳手架

2021-04-13 14:47:53

認(rèn)證授權(quán)Java

2021-05-13 17:02:38

MDC腳手架日志

2023-11-21 17:36:04

OpenFeignSentinel

2021-07-29 18:49:49

Spring開發(fā)腳手架

2025-05-16 07:24:41

Springkafka腳手架

2021-04-20 19:24:16

腳手架 Java微信

2020-06-29 11:35:02

Spring BootJava腳手架

2016-08-10 14:59:41

前端Javascript工具

2021-06-02 17:58:49

腳手架 冪等性前端

2021-02-19 22:43:50

開發(fā)腳手架Controller

2017-04-17 10:35:40

Spring BooRedis 操作

2021-01-07 05:34:07

腳手架JDK緩存

2022-07-18 07:58:46

Spring工具工具類

2016-09-07 15:35:06

VueReact腳手架

2021-12-23 10:35:32

SpringCloud腳手架架構(gòu)
點贊
收藏

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

亚洲手机成人高清视频| 国产亚洲激情| 精品1区2区在线观看| 亚洲 欧美 综合 另类 中字| 天天干天天插天天操| 日韩综合小视频| 美女撒尿一区二区三区| 成人性生活免费看| 欧美亚洲综合视频| 亚洲午夜日本在线观看| 欧美亚洲另类久久综合| 国产乱码精品一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲欧美国产精品va在线观看| 伊人影院综合在线| 国产精品原创| 亚洲手机成人高清视频| 日本在线免费观看一区| 亚洲国产精品国自产拍久久| 日韩国产高清影视| 久久免费视频网| 免费在线观看黄色小视频| 里番精品3d一二三区| 欧美日本韩国一区二区三区视频| 五十路熟女丰满大屁股| 欧美高清视频| 99久久亚洲一区二区三区青草| 国产精品一区二区三区毛片淫片| 久久这里只有精品国产| 青青草国产成人a∨下载安卓| 亚洲国产私拍精品国模在线观看| 免费精品99久久国产综合精品应用| 欧美激情20| 亚洲激情图片小说视频| 亚洲免费在线精品一区| 视频午夜在线| 99精品视频中文字幕| 91在线看网站| 国产精品色综合| 久久爱www久久做| 国产精品久久久久免费a∨大胸| 日韩 国产 在线| 欧美日韩天堂| 久久亚洲精品成人| 黑人操日本美女| 日韩电影免费网站| 在线观看欧美日韩国产| 91精品人妻一区二区三区蜜桃欧美| 国产精品成人自拍| 欧美成人精品福利| 亚洲av无码专区在线播放中文| 国产不卡精品| 日韩亚洲国产中文字幕欧美| 日本网站在线看| 欧美视频第一| 欧美精品久久一区| 一区二区三区四区毛片| 日韩一级视频| 欧美一区二区三区公司| 女王人厕视频2ⅴk| 97se亚洲| 日韩精品在线私人| 国产手机在线观看| japanese国产精品| 日韩在线视频二区| 国产精品夜夜夜爽阿娇| 亚洲一本二本| 欧美激情欧美狂野欧美精品| 国产无码精品视频| 性久久久久久| 国产精品第七十二页| 亚洲一区中文字幕永久在线| 韩国一区二区视频| 97在线电影| 午夜在线视频免费| 国产日韩欧美在线一区| 亚洲国产欧美一区二区三区不卡| 亚洲1卡2卡3卡4卡乱码精品| 中文字幕五月欧美| 欧美黄网在线观看| 少妇视频在线观看| 欧美在线观看你懂的| 一区二区三区四区毛片| 丁香综合av| 亚洲视频免费一区| 久久国产精品国语对白| 一区二区三区四区五区在线| 国产第一区电影| 国产一区二区三区四区视频| 成人综合在线观看| 欧美大香线蕉线伊人久久国产精品 | 极品美乳网红视频免费在线观看| 97精品国产综合久久久动漫日韩| 舐め犯し波多野结衣在线观看| 欧美日韩国产免费一区二区三区 | 美脚丝袜一区二区三区在线观看| 九九精品在线观看| 亚洲丝袜美腿综合| 欧美精品密入口播放| 1024免费在线视频| 日韩成人免费在线观看| 亚洲一区精品视频在线观看| 性欧美.com| 亚洲mm色国产网站| 中文字幕少妇一区二区三区| 国产综合福利在线| 国产精品亚洲欧美在线播放| 成人的网站免费观看| 日本免费一区二区三区| 日韩少妇视频| 午夜激情久久| 中文字幕免费国产精品| 久草网在线观看| 强制捆绑调教一区二区| 国产精品美女xx| 欧美性videos| 色八戒一区二区三区| 国产吃瓜黑料一区二区| 欧美亚洲国产激情| 91超碰中文字幕久久精品| 国产精品乱码久久久| 久久久美女毛片| 日本中文字幕在线视频观看| 国产精品1区| 国产一区二区三区在线播放免费观看| 欧美黄色免费看| 麻豆精品新av中文字幕| 明星裸体视频一区二区| 国精一区二区三区| 制服.丝袜.亚洲.中文.综合| 男人舔女人下部高潮全视频| 亚洲精品影视| 国产99视频精品免费视频36| 国产激情在线视频| 欧美日韩亚洲另类| 亚洲一区二区三区日韩| 国产一区二区三区成人欧美日韩在线观看 | 欧美一区二区三区思思人| 久久久久久国产免费a片| 最新亚洲视频| 国产精品一区在线观看| 日本欧美电影在线观看| 欧美一级午夜免费电影| 亚洲熟女毛茸茸| 美腿丝袜亚洲一区| 亚洲精品一区二区三区av| 中文字幕av一区二区三区佐山爱| 国产婷婷色综合av蜜臀av| 免费在线不卡视频| 成人av免费观看| 黄色一级视频片| 国产精品调教视频| 97免费视频在线| 亚洲av激情无码专区在线播放| 午夜欧美大尺度福利影院在线看| 日本中文字幕在线不卡| 午夜激情一区| 成人激情av| 操喷在线视频| 日韩av网站在线| 亚洲熟女综合色一区二区三区| 久久奇米777| 美女黄色片视频| 欧美日韩高清| 成人欧美一区二区三区黑人| 最新av在线播放| 亚洲成人av片| av黄色在线播放| 中文字幕精品—区二区四季| 伊人影院综合在线| 欧美日韩视频| 久久久人人爽| 久久av日韩| 久久99精品国产99久久6尤物| 日韩在线观看视频一区二区三区| 精品福利在线视频| 特级西西www444人体聚色| 久久99精品国产麻豆婷婷洗澡| 手机在线视频你懂的| 亚洲精品一区二区三区在线| 91国产精品视频在线| 国产一级在线| 欧美一级高清大全免费观看| 国产成人无码精品| 国产喂奶挤奶一区二区三区| 国产免费亚洲高清| 久久久av网站| 最近2019中文字幕大全第二页 | 欧美精品 - 色网| 91精品秘密在线观看| 国产超碰91| 成人看片在线观看| 欧美麻豆久久久久久中文| 天天干天天做天天操| 欧美日韩中文另类| 精品在线免费观看视频| 国产婷婷色一区二区三区| 下面一进一出好爽视频| 久久综合影音| 青草网在线观看| 日韩免费看片| 久久精品日产第一区二区三区精品版| av久久网站| 性欧美办公室18xxxxhd| 麻豆视频在线免费观看| 日韩久久免费电影| www日本视频| 欧美色成人综合| 国产一级做a爱片久久毛片a| 亚洲丝袜美腿综合| 国产高清一区二区三区四区| 成人手机电影网| 欧美成人福利在线观看| 国产精品一区毛片| 国产成a人亚洲精v品在线观看| 日韩大片在线播放| 裸体丰满少妇做受久久99精品| 成人在线视频国产| 国产精品pans私拍| 国产精品蜜芽在线观看| 久久91亚洲人成电影网站| 成人精品一区二区三区免费| 亚洲国产精品小视频| 精品国产av一区二区三区| 欧美日韩高清在线| 天天爱天天做天天爽| 精品久久久久久中文字幕一区奶水| 国产性xxxx| 中文字幕一区二区不卡| 人妻精品久久久久中文| 2023国产精品自拍| 性欧美丰满熟妇xxxx性久久久| 国产成a人亚洲精品| 在线黄色免费看| 久久精品国产亚洲高清剧情介绍| 成年人小视频网站| 天堂av在线一区| 一级黄色香蕉视频| 爽好久久久欧美精品| 国产熟女高潮视频| 久久精品午夜| 国产成人无码av在线播放dvd| 亚洲一区日本| 精品这里只有精品| 亚洲每日在线| www.av中文字幕| 中文一区二区| 男人揉女人奶房视频60分| 国产精品呻吟| 亚洲成熟丰满熟妇高潮xxxxx| 免费在线亚洲欧美| 男人透女人免费视频| 久久三级福利| www.超碰com| 麻豆精品国产传媒mv男同| av亚洲天堂网| 国产精品1区2区3区| 第一页在线视频| 高清不卡一二三区| 艳妇乳肉亭妇荡乳av| 91玉足脚交白嫩脚丫在线播放| 人妻在线日韩免费视频| 国产亚洲精品久| 人与动物性xxxx| 亚洲黄网站在线观看| 日本三级免费看| 富二代精品短视频| 久久久久亚洲视频| 欧美丰满少妇xxxxx高潮对白| va视频在线观看| 亚洲精品动漫100p| 黄色国产在线| 久久久91精品| 98色花堂精品视频在线观看| 国产99久久精品一区二区 夜夜躁日日躁 | 亚洲h精品动漫在线观看| 国产专区第一页| 欧美三级一区二区| 亚洲av无码一区二区三区dv| 日韩国产欧美精品一区二区三区| yw193.com尤物在线| 欧美成人免费一级人片100| 黄在线观看免费网站ktv| 国产精品pans私拍| 哺乳一区二区三区中文视频 | 成人在线高清视频| 不卡伊人av在线播放| 国产中文在线播放| 国产精品爽黄69| 成人盗摄视频| 少妇精品久久久久久久久久| 午夜激情一区| 污污的网站18| 99久久久精品| 三级全黄做爰视频| 日韩欧美在线播放| 精品人妻一区二区三区换脸明星| 精品呦交小u女在线| 中文字幕在线观看网站| 日本欧美一级片| 2020国产精品极品色在线观看| 日本不卡一区二区三区在线观看| 欧美精品18| av污在线观看| 99re这里只有精品首页| 在线视频第一页| 日韩成人一级| 欧美日韩亚洲在线| 国产精品豆花视频| 亚洲综合婷婷久久| 久久婷婷国产综合精品青草| 中日韩一级黄色片| 欧美系列在线观看| 日韩大胆视频| 久久久欧美精品| 91精品国产色综合久久不卡粉嫩| 欧美精品一区在线发布| 亚洲东热激情| 亚洲高清av一区二区三区| 国产精品欧美一级免费| av图片在线观看| 日韩黄在线观看| av免费不卡| 成人欧美一区二区三区视频| 久久精品青草| 精品综合久久久久| 欧美激情一区二区三区不卡 | 日本亚洲天堂网| 51调教丨国产调教视频| 亚洲永久免费av| 国产成人精品一区二区无码呦| 日韩中文字幕亚洲| 777午夜精品电影免费看| 欧美在线一二三区| 亚洲欧美bt| 亚欧洲乱码视频| 疯狂做受xxxx欧美肥白少妇| 午夜一区在线观看| 91av在线影院| 少妇一区二区三区| 1024av视频| 26uuu精品一区二区| 成人免费a视频| 亚洲奶大毛多的老太婆| 国产在线88av| 久久天天狠狠| 三级欧美在线一区| 亚洲一二三精品| 欧美日韩一区二区三区免费看| 一本一道波多野毛片中文在线| 国产精品人成电影| 国产高清欧美| 一本之道在线视频| 一区二区三区免费观看| 隣の若妻さん波多野结衣| 久久欧美在线电影| 中文有码一区| 最新中文字幕免费视频| 中文字幕一区二区三区在线观看| 一本一道人人妻人人妻αv| 久久久久北条麻妃免费看| 视频一区在线| 日韩在线综合网| 国产欧美日韩亚州综合| 国产一区二区小视频| 欧美国产视频一区二区| 美女av一区| 91色国产在线| 亚洲精品国产第一综合99久久| 亚洲精品一区二区口爆| 欧美专区中文字幕| 色777狠狠狠综合伊人| 亚洲 自拍 另类 欧美 丝袜| 精品福利视频导航| 成人在线观看黄色| 97在线资源站| 日韩和欧美的一区| 欧美一区二区三区爽爽爽| 亚洲第一视频在线观看| 午夜激情成人网| 国产精品啪啪啪视频| 91色综合久久久久婷婷| 91好色先生tv| 97在线视频精品| 欧美3p视频| 亚洲蜜桃精久久久久久久久久久久| 欧亚一区二区三区| 国产第一页在线| 色视频一区二区三区| 福利一区二区在线| 国产美女www爽爽爽| 久久久久久久色| 日韩精品永久网址| 岛国精品资源网站| 欧美日韩国产综合久久| 黄视频免费在线看| av不卡在线免费观看| 久久亚洲一区二区三区四区| a毛片在线免费观看| 国产成人精品在线观看|