久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Redis和springboot 整合redisUtil類的示例代碼

瀏覽:7日期:2023-04-03 10:15:46
一、引入依賴

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>二、在application.yml 配置redis服務器

spring: # 環境 dev|test|prod profiles: active: dev servlet: multipart: max-file-size: 100MB max-request-size: 100MB enabled: true redis: database: 0 # Redis服務器數據庫 host: 192.168.6.27 # Redis服務器地址 port: 6379 # Redis服務器連接端口 password: 123456 # Redis服務器連接密碼(默認為空) timeout: 6000ms # 連接超時時間(毫秒) jedis: pool: max-active: 200 # 連接池最大連接數(使用負值表示沒有限制) max-wait: -1 # 連接池最大阻塞等待時間(使用負值表示沒有限制) max-idle: 10 # 連接池中的最大空閑連接 min-idle: 0 # 連接池中的最小空閑連接三、寫一個redis配置類

(1)聊聊RedisTemplate的自動配置 其實現在就可以在代碼中注入RedisTemplate,為啥可以直接注入呢?先看下源碼吧。下圖為RedisAutoConfiguration類中的截圖,為了防止圖片失效,代碼也貼上。

Redis和springboot 整合redisUtil類的示例代碼

通過源碼可以看出,SpringBoot自動幫我們在容器中生成了一個RedisTemplate和一個StringRedisTemplate。但是,這個RedisTemplate的泛型是<Object,Object>,寫代碼不方便,需要寫好多類型轉換的代碼;我們需要一個泛型為<String,Object>形式的RedisTemplate。并且,這個RedisTemplate沒有設置數據存在Redis時,key及value的序列化方式。看到這個@ConditionalOnMissingBean注解后,就知道如果Spring容器中有了RedisTemplate對象了,這個自動配置的RedisTemplate不會實例化。因此我們可以直接自己寫個配置類,配置RedisTemplate。(2)既然自動配置不好用,就重新配置一個RedisTemplate

包的結構如下

Redis和springboot 整合redisUtil類的示例代碼

代碼如下:

package com.yux.redisdemo.redis; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; /**15 * redis配置類16 * @author YUX17 * @date 2018年6月6日18 *19 */ @Configurationpublic class RedisConfig { @Bean @SuppressWarnings('all') public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); template.setConnectionFactory(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } } 四、編寫一個RedisUtil類

package com.yux.redisdemo.redis; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; /**14 * Redis工具類15 * @author YUX16 * @date 2018年6月7日17 */ @Componentpublic final class RedisUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; // =============================common============================ /** * 26 * 指定緩存失效時間 * 27 * * @param key 鍵 * 28 * @param time 時間(秒) * 29 * @return 30 */ public boolean expire(String key, long time) { try { if (time > 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 44 * 根據key 獲取過期時間 * 45 * * @param key 鍵 不能為null * 46 * @return 時間(秒) 返回0代表為永久有效 * 47 */ public long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * 53 * 判斷key是否存在 * 54 * * @param key 鍵 * 55 * @return true 存在 false不存在 * 56 */ public boolean hasKey(String key) { try { return redisTemplate.hasKey(key); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 67 * 刪除緩存 * 68 * * @param key 可以傳一個值 或多個 * 69 */ @SuppressWarnings('unchecked') public void del(String... key) { if (key != null && key.length > 0) { if (key.length == 1) { redisTemplate.delete(key[0]); } else { redisTemplate.delete(CollectionUtils.arrayToList(key)); } } } // ============================String============================= /** * 83 * 普通緩存獲取 * 84 * * @param key 鍵 * 85 * @return 值 * 86 */ public Object get(String key) { return key == null ? null : redisTemplate.opsForValue().get(key); } /** * 92 * 普通緩存放入 * 93 * * @param key 鍵 * 94 * @param value 值 * 95 * @return true成功 false失敗 * 96 */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 109 * 普通緩存放入并設置時間 * 110 * * @param key 鍵 * 111 * @param value 值 * 112 * @param time 時間(秒) time要大于0 如果time小于等于0 將設置無限期 * 113 * @return true成功 false 失敗 * 114 */ public boolean set(String key, Object value, long time) { try { if (time > 0) { redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); } else { set(key, value); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 130 * 遞增 * 131 * * @param key 鍵 * 132 * @param delta 要增加幾(大于0) * 133 * @return 134 */ public long incr(String key, long delta) { if (delta < 0) { throw new RuntimeException('遞增因子必須大于0'); } return redisTemplate.opsForValue().increment(key, delta); } /** * 143 * 遞減 * 144 * * @param key 鍵 * 145 * @param delta 要減少幾(小于0) * 146 * @return 147 */ public long decr(String key, long delta) { if (delta < 0) { throw new RuntimeException('遞減因子必須大于0'); } return redisTemplate.opsForValue().increment(key, -delta); } // ================================Map================================= /** * 157 * HashGet * 158 * * @param key 鍵 不能為null * 159 * @param item 項 不能為null * 160 * @return 值 * 161 */ public Object hget(String key, String item) { return redisTemplate.opsForHash().get(key, item); } /** * 167 * 獲取hashKey對應的所有鍵值 * 168 * * @param key 鍵 * 169 * @return 對應的多個鍵值 * 170 */ public Map<Object, Object> hmget(String key) { return redisTemplate.opsForHash().entries(key); } /** * 176 * HashSet * 177 * * @param key 鍵 * 178 * @param map 對應多個鍵值 * 179 * @return true 成功 false 失敗 * 180 */ public boolean hmset(String key, Map<String, Object> map) { try { redisTemplate.opsForHash().putAll(key, map); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 192 * HashSet 并設置時間 * 193 * * @param key 鍵 * 194 * @param map 對應多個鍵值 * 195 * @param time 時間(秒) * 196 * @return true成功 false失敗 * 197 */ public boolean hmset(String key, Map<String, Object> map, long time) { try { redisTemplate.opsForHash().putAll(key, map); if (time > 0) { expire(key, time); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 212 * 向一張hash表中放入數據,如果不存在將創建 * 213 * * @param key 鍵 * 214 * @param item 項 * 215 * @param value 值 * 216 * @return true 成功 false失敗 * 217 */ public boolean hset(String key, String item, Object value) { try { redisTemplate.opsForHash().put(key, item, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 229 * 向一張hash表中放入數據,如果不存在將創建 * 230 * * @param key 鍵 * 231 * @param item 項 * 232 * @param value 值 * 233 * @param time 時間(秒) 注意:如果已存在的hash表有時間,這里將會替換原有的時間 * 234 * @return true 成功 false失敗 * 235 */ public boolean hset(String key, String item, Object value, long time) { try { redisTemplate.opsForHash().put(key, item, value); if (time > 0) { expire(key, time); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 250 * 刪除hash表中的值 * 251 * * @param key 鍵 不能為null * 252 * @param item 項 可以使多個 不能為null * 253 */ public void hdel(String key, Object... item) { redisTemplate.opsForHash().delete(key, item); } /** * 259 * 判斷hash表中是否有該項的值 * 260 * * @param key 鍵 不能為null * 261 * @param item 項 不能為null * 262 * @return true 存在 false不存在 * 263 */ public boolean hHasKey(String key, String item) { return redisTemplate.opsForHash().hasKey(key, item); } /** * 269 * hash遞增 如果不存在,就會創建一個 并把新增后的值返回 * 270 * * @param key 鍵 * 271 * @param item 項 * 272 * @param by 要增加幾(大于0) * 273 * @return 274 */ public double hincr(String key, String item, double by) { return redisTemplate.opsForHash().increment(key, item, by); } /** * 280 * hash遞減 * 281 * * @param key 鍵 * 282 * @param item 項 * 283 * @param by 要減少記(小于0) * 284 * @return 285 */ public double hdecr(String key, String item, double by) { return redisTemplate.opsForHash().increment(key, item, -by); } // ============================set============================= /** * 292 * 根據key獲取Set中的所有值 * 293 * * @param key 鍵 * 294 * @return 295 */ public Set<Object> sGet(String key) { try { return redisTemplate.opsForSet().members(key); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 306 * 根據value從一個set中查詢,是否存在 * 307 * * @param key 鍵 * 308 * @param value 值 * 309 * @return true 存在 false不存在 * 310 */ public boolean sHasKey(String key, Object value) { try { return redisTemplate.opsForSet().isMember(key, value); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 321 * 將數據放入set緩存 * 322 * * @param key 鍵 *323 * @param values 值 可以是多個 *324 * @return 成功個數 * 325 */ public long sSet(String key, Object... values) { try { return redisTemplate.opsForSet().add(key, values); } catch (Exception e) { e.printStackTrace(); return 0; } } /** * 336 * 將set數據放入緩存 * 337 * * @param key 鍵 *338 * @param time 時間(秒) *339 * @param values 值 可以是多個 *340 * @return 成功個數 * 341 */ public long sSetAndTime(String key, long time, Object... values) { try { Long count = redisTemplate.opsForSet().add(key, values); if (time > 0) expire(key, time); return count; } catch (Exception e) { e.printStackTrace(); return 0; } } /** * 355 * 獲取set緩存的長度 * 356 * * @param key 鍵 * 357 * @return 358 */ public long sGetSetSize(String key) { try { return redisTemplate.opsForSet().size(key); } catch (Exception e) { e.printStackTrace(); return 0; } } /** * 369 * 移除值為value的 * 370 * * @param key 鍵 *371 * @param values 值 可以是多個 *372 * @return 移除的個數 * 373 */ public long setRemove(String key, Object... values) { try { Long count = redisTemplate.opsForSet().remove(key, values); return count; } catch (Exception e) { e.printStackTrace(); return 0; } } // ===============================list================================= /** * 386 * 獲取list緩存的內容 * 387 * * @param key 鍵 * 388 * @param start 開始 * 389 * @param end 結束 0 到 -1代表所有值 * 390 * @return 391 */ public List<Object> lGet(String key, long start, long end) { try { return redisTemplate.opsForList().range(key, start, end); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 402 * 獲取list緩存的長度 * 403 * * @param key 鍵 * 404 * @return 405 */ public long lGetListSize(String key) { try { return redisTemplate.opsForList().size(key); } catch (Exception e) { e.printStackTrace(); return 0; } } /** * 416 * 通過索引 獲取list中的值 * 417 * * @param key 鍵 * 418 * @param index 索引 index>=0時, 0 表頭,1 第二個元素,依次類推;index<0時,-1,表尾,-2倒數第二個元素,依次類推 * 419 * @return 420 */ public Object lGetIndex(String key, long index) { try { return redisTemplate.opsForList().index(key, index); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 431 * 將list放入緩存 * 432 * * @param key 鍵 * 433 * @param value 值 * 434 * @param time 時間(秒) * 435 * @return 436 */ public boolean lSet(String key, Object value) { try { redisTemplate.opsForList().rightPush(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 將list放入緩存 * * @param key 鍵 * @param value 值 * @param time 時間(秒) * @return */ public boolean lSet(String key, Object value, long time) { try { redisTemplate.opsForList().rightPush(key, value); if (time > 0) expire(key, time); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 467 * 將list放入緩存 * 468 * * @param key 鍵 * 469 * @param value 值 * 470 * @param time 時間(秒) * 471 * @return 472 */ public boolean lSet(String key, List<Object> value) { try { redisTemplate.opsForList().rightPushAll(key, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 484 * 將list放入緩存 * 485 * <p> * 486 * * @param key 鍵 * 487 * @param value 值 * 488 * @param time 時間(秒) * 489 * @return 490 */ public boolean lSet(String key, List<Object> value, long time) { try { redisTemplate.opsForList().rightPushAll(key, value); if (time > 0) expire(key, time); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 504 * 根據索引修改list中的某條數據 * 505 * * @param key 鍵 * 506 * @param index 索引 * 507 * @param value 值 * 508 * @return 509 */ public boolean lUpdateIndex(String key, long index, Object value) { try { redisTemplate.opsForList().set(key, index, value); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 521 * 移除N個值為value * 522 * * @param key 鍵 * 523 * @param count 移除多少個 * 524 * @param value 值 * 525 * @return 移除的個數 * 526 */ public long lRemove(String key, long count, Object value) { try { Long remove = redisTemplate.opsForList().remove(key, count, value); return remove; } catch (Exception e) { e.printStackTrace(); return 0; } }}五、在service中注入RedisUtil可用

Redis和springboot 整合redisUtil類的示例代碼

到此這篇關于Redis和springboot 整合redisUtil類的示例代碼的文章就介紹到這了,更多相關Redis和springboot 整合redisUtil類內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 久久久久久免费免费 | 福利视频网址导航 | 中字幕视频在线永久在线观看免费 | 91精品国产91久久久久久久久久久久 | 91秦先生艺校小琴 | 精品国产乱码一区二区三区 | 三级黄色在线视频 | 国产一区在线视频 | 日韩成人一区二区 | 亚洲一二视频 | 偷拍呻吟高潮91 | 国产永久免费 | 成人亚洲天堂 | 91精品中文字幕一区二区三区 | 亚洲处破女 | 狠狠亚洲 | 日韩小视频网站hq | 国产大学生情侣呻吟视频 | 亚洲欧美激情精品一区二区 | 五月天婷婷综合 | 国产成人精品电影 | 日韩中文字幕在线 | 操操操av| 久久精品欧美一区二区三区不卡 | 91福利在线播放 | 99久久九九 | 欧美一级二级三级 | 国产999精品久久久影片官网 | 成人久久18免费观看 | 成人久久久久 | 国产精品国产成人国产三级 | 久久一区二区av | 麻豆视频在线 | 在线亚洲一区二区 | 国产九九精品视频 | 日韩激情视频一区 | 日日操天天操 | 一级毛片免费在线 | 在线国产视频 | 亚洲国产成人精品久久 | 亚洲 一区| 国产精品亚洲精品 | 久久成人国产视频 | 在线99| 精品九九 | 中文字幕一区在线观看视频 | 99国产精品99久久久久久 | 国产在线中文字幕 | 精品1区 | 日韩高清在线一区 | av中文在线 | 亚洲 欧美 日韩 丝袜 另类 | 中文字幕在线观看亚洲 | 亚洲国产精品99久久久久久久久 | 国产在线精品一区 | 91免费国产 | 亚洲在线播放 | 久久夜夜 | 欧美在线a | 日韩毛片 | 日韩欧美国产一区二区 | 一区二区精品 | 精品无人乱码一区二区三区 | 成人欧美一区二区三区在线观看 | 亚洲男人的天堂在线观看 | 免费视频一区二区三区在线观看 | 久久精品中文字幕 | 国产高潮呻吟久久渣男片 | 日韩av网站在线 | 日韩欧美一区二区三区四区 | 高清久久| 冷水浴在线观看 | 国产欧美一区二区精品性色 | 99pao成人国产永久免费视频 | 爱啪导航一精品导航站 | 亚洲国产精品99久久久久久久久 | 日韩视频在线免费观看 | 我和我的祖国电影在线观看免费版高清 | 国产日韩精品视频 | 久久久精品 | 91久久在线 | 中文字幕亚洲综合久久久软件 | 亚洲欧美电影 | 国产精品1页 | 中文字幕精品视频在线观看 | 国产99久久久精品视频 | 99久久婷婷国产综合精品 | 亚洲啊v在线 | 在线观看精品自拍私拍 | 一区二区三区国产视频 | 欧美日韩电影一区二区三区 | a√天堂资源在线 | 狠狠的干 | 日本不卡一区 | 免费观看成人毛片 | 亚洲二区在线观看 | 久久一级| 欧美一区二区三区久久精品 | www.日韩系列 | 精品久久一区二区三区 | 狠狠影院 | 九色一区二区 | 日本电影网址 | 日韩毛片| 羞羞视频免费观看 | 国产精品久久久久久久久久久久久 | 久久精品一区二区三区四区 | 国产大学生一区 | 美女视频黄色免费 | av男人的天堂在线 | 91久草视频| 亚洲a级| 成人免费crm在线观看 | 毛片网站在线 | 日韩成人在线视频 | 一区二区手机在线 | 在线观看日韩 | 91精品久久久久久久久久 | 91精品久久久久久久久 | 色香阁99久久精品久久久 | 成人精品在线 | 精品国产一区二区三区久久影院 | 美国黄色毛片 | 一级做a爰性色毛片免费1 | 97成人在线| 欧美日韩视频一区二区 | 不卡一区二区三区四区 | 久久国产欧美一区二区三区精品 | 国产97在线 | 亚洲 | 久久亚洲二区 | 久久久久久久一区二区三区 | 久久这里只有精品首页 | 色婷婷综合久久久中文字幕 | 欧美一级毛片久久99精品蜜桃 | 午夜久久久 | 久久精品免费一区二区三区 | 视频一区在线播放 | 中文字幕一区二区三区精彩视频 | 色视频www在线播放国产人成 | 日韩毛片一级 | 午夜小视频在线观看 | 国产一区二区精品在线观看 | 欧美精品一区二区三区在线四季 | 亚洲一区二区三区四区在线 | 亚洲精品久久久久久下一站 | 欧美日韩亚洲一区 | 在线精品一区 | 久久99精品国产麻豆婷婷洗澡 | julia中文字幕久久一区二区 | 偷拍做爰吃奶视频免费看 | 亚洲一区二区三区福利 | 日韩久久精品 | 久久久久久久久一区 | 日韩中文字 | 国产精品国产三级国产aⅴ入口 | 欧美一二三四成人免费视频 | 欧美日韩国产在线观看 | 国产一区二区在线视频 | 亚洲毛片网站 | 国产一级一级片 | 视频一区在线播放 | 国产精品久久久久免费a∨ 欧洲精品一区 | 在线色网站 | 国产欧美日韩 | 99精品国产在热久久 | 精品96久久久久久中文字幕无 | 在线欧美色 | 成人欧美一区二区三区黑人孕妇 | 国产欧美在线观看 | 欧美日韩一区二区三区在线观看 | 亚洲视频一区在线播放 | 久久99精品久久久 | 国色天香成人网 | 免费看片一区二区三区 | www.国产欧美 | 99久久久精品 | 久久久免费视频看看 | 国产高清精品一区二区三区 | 日本成人久久 | 久久免费精品视频 | 成人黄视频在线观看 | 久久黑人 | 青青草视频免费观看 | 国产一区二区三区四 | 国产精品视频播放 | 国产91富婆养生按摩会所 | 伊人久久一区二区三区 | 91精品国产乱码久久蜜臀 | 国产精品久久免费观看spa | 日韩免费在线观看视频 | 国产亚洲精品一区二区 | 精品999 | 国产一级做a爰片在线看免费 | 91在线视频播放 | 综合精品久久久 | 日日骚 | 国产精品毛片 | 亚洲 欧美 日韩在线 | 成人在线国产 | 国产视频一视频二 | 成人午夜免费视频 | 日韩中文字幕三区 | av基地网 | 在线不卡a资源高清 | 日本a在线 | 成人欧美一区二区三区在线播放 | 久久porn | 天天摸天天干 | 男女黄网站| 九九九九九九精品任你躁 | 亚洲午夜视频在线观看 | 亚洲网站在线播放 | 国产精品久久久久久久久免费软件 | 美女毛片免费看 | 中文字幕av网 | 黄免费视频 | 二区在线观看 | 一区二区影院 | 蜜桃一区二区 | 欧美日韩国产一区二区三区 | 狠狠插狠狠操 | 国产偷录视频叫床高潮对白 | 夜夜草视频 | 搜一级毛片 | 农村末发育av片四区五区 | 欧美在线视频三区 | 国产综合久久 | 精品国产乱码久久久久久影片 | 色伊人| 亚洲一区二区三区高清 | 欧美在线观看视频 | 老司机福利在线视频 | 午夜精品久久久久久99热软件 | 91视频在线播放视频 | 亚洲精品国产偷自在线观看 | 欧美成人精品一区二区三区 | 久草在线视频免费播放 | 伊人久久综合影院 | 久久国产精品免费一区二区三区 | 亚洲不卡视频 | 亚洲精品天堂 | 日韩精品免费观看 | 午夜视频网站 | 日产欧产va高清 | 国产视频色 | 日韩在线网| 国产浪潮av色综合久久超碰 | 日韩精品av一区二区三区 | 天堂欧美城网站网址 | 久久久一区二区 | 黄色国产一级视频 | 久久久精品免费看 | 欧美一区二区三区精品免费 | 国产精品日本一区二区在线播放 | 国产丝袜一区 | www.久久伊人 | 免费成人av网站 | 精品二区 | 99re99| 五月婷婷丁香在线 | 国产永久免费 | 亚洲777| 大黄网站在线观看 | 欧美激情一区二区三级高清视频 | 日韩中文字幕免费在线播放 | 久久九九 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕av黄色 | 欧美第7页| 亚洲人成中文字幕在线观看 | 深夜成人小视频 | 欧美日韩久久精品 | 狠狠色综合色综合网络 | 久草高清 | 免费亚洲视频 | 亚洲三级在线看 | 久久久国产精品 | 国产精品一区二区三区在线免费观看 | 精品中文字幕一区二区三区 | 成人一级黄色大片 | 国产一级纯肉体一级毛片 | 久久久高清 | 国产精品久久国产愉拍 | 综合色久| 日韩免费高清视频 | 成人影院av| 在线欧美亚洲 | 国内精品久久久久 | 久久九九| 日韩不卡一区二区三区 | 日日操天天操 | 99久久国产综合精品女不卡 | 欧美日韩视频在线观看一区 | 一区二区在线视频 | 免费一区二区 | 国产91色在线 | 亚洲 | 久久久精品电影 | 亚洲一区二区av | 国产精品久久久久久久久免费高清 | 成人av网站在线观看 | 国产一级片一区二区三区 | 国产91在线播放精品 | 中文字幕视频在线播放 | 日韩电影中文字幕 | 日本不卡一区二区 | 91精品国产欧美一区二区成人 | 国产在线日韩 | 久久久精彩视频 | 日韩中文字幕在线免费 | 欧美乱轮 | 中文字幕一区二区三区精彩视频 | 人人爱人人草 | 综合一区 | 荷兰欧美一级毛片 | 青青草一区 | 国产精品久久久久久久美男 | 6080yy午夜一二三区久久 | 亚洲免费影院 | 欧美一级欧美三级在线观看 | 日韩视频一区二区三区四区 | 国产在线一二三区 | 国产毛片a级 | www.久久 | 国产精品视频一区二区三区 | 国产精品久久久久久久竹霞 | 99国产精品| 久久首页 | 日日干夜夜操 | 久久国产精品免费一区二区三区 | 久久午夜视频 | 日韩一区二区在线免费 | 超碰在线人 | 欧美二区三区视频 | 在线免费观看黄色 | 久久在线视频 | 黄色免费在线观看 | 欧美精品一区二 | 欧美一级视频免费 | 免费av一区 | 一区二区在线视频免费观看 | 欧美日产国产成人免费图片 | 久久久久国产一区二区三区四区 | 精品国产乱码久久久久久1区2区 | 久久久精品区 | 欧美freesex交免费视频 | 亚洲一区二区三区免费视频 | 国产麻豆乱码精品一区二区三区 | 福利视频一 | 久久久中文字幕 | 久久激情网 | 精品久久久久一区二区三区 | 国产精品久久久久久妇女6080 | 欧美精品一区二区三区在线 | 亚洲国产久| 午夜男人天堂 | 欧美成人精品一区二区三区 | 国产精品三级久久久久久电影 | 国产一级片在线 | 国产免费av在线 | 91精品国产综合久久香蕉922 | 免费在线成人 | 国产一级一级毛片女人精品 | 蜜桃精品久久久久久久免费影院 | 成人片网址 | 国产情侣免费视频 | 免费观看一区二区三区 | 日韩精品一区二区在线观看 | 免费国产一区 | 中文在线一区 | 亚洲精品久久久久久久久久久 | 9色porny自拍视频一区二区 | 国产精品久久一区二区三区 | 国产成人a亚洲精品 | 美女一区二区三区在线观看 | 在线一区二区三区 | 日日日操| 欧美成年黄网站色视频 | 午夜一区二区三区在线观看 | 成人二区| 国产免费自拍视频 | 亚洲第一黄 | 国产在线精品一区二区 | av网站推荐| 精品一二区 | 欧美1区 | 一级黄色录像在线观看 | 免费黄色小片 | 欧美综合一区二区三区 | 天天操,夜夜操 | 国产亚洲一区二区精品 | av黄色在线| 成人影音 | 国产不卡在线 | 成人一区二区在线 | 日本在线不卡视频 | 麻豆av电影在线观看 | 日韩三级在线 | 国产精品久久 | 欧美日韩a v | 超碰精品在线观看 | 狠狠的干 | 欧美大片免费高清观看 | 一区二区亚洲 | 日韩欧美专区 | 免费大片在线观看网站 | www久久久久久久 | 亚洲伊人网站 | 国产视频一区二区三区四区 | 二区三区在线 | 海外中文字幕在线观看 | 男女啪啪高清无遮挡 | 成人18视频在线观看 | 成人黄色在线观看 | 精品视频一区二区三区四区 | 99国内精品久久久久久久 | 日本中文字幕在线观看 | 久热精品视频 | 久久精品亚洲一区 | 在线欧美日韩 | 亚洲综合区 | 亚洲一区免费在线观看 | 日本欧美在线观看 | 视频一区二区三区中文字幕 | 在线视频国产一区 | 另类综合在线 | 免费三级黄色 | 精品久久久久久久久久久院品网 | 91高清视频 | 91精品国产综合久久久久久 | 国产日韩欧美一区二区 | 国产一区二区三区四区三区 | 久久免费小视频 | 99精品国产高清一区二区麻豆 | 亚洲高清中文字幕 | 久久综合九色综合欧美狠狠 | 激情综合色综合久久综合 | 男人天堂网av | 国产欧美日韩综合精品一区二区 | 免费国产网站 | 国产精品99久久久久久久vr | 97超碰站 | 99视频精品| 免费国产视频 | 欧美极品欧美精品欧美视频 | 久久69精品久久久久久久电影好 | 欧美一区免费 | 久久精品一区二区三区四区 | 中文字幕视频二区 | 日韩精品一区二区三区中文字幕 | 午夜精品久久久久 | 国产在线一区二区 | 97国产在线视频 | 亚洲日韩成人 | 久久久精品456亚洲影院 | 亚洲男人的天堂在线播放 | 成年免费a级毛片 | 国产精品片aa在线观看 | 龙珠z中文版普通话 | 色婷婷一区二区三区四区 | 精品91| 天天干夜夜操 | 亚洲一区二区三区四区五区中文 | 成人欧美一区二区三区黑人孕妇 | 午夜午夜精品一区二区三区文 | 99精品一区 | 99久久久免费视频 | 精品亚洲一区二区三区 | 色爱区综合五月激情 | 亚洲视频一区二区 | 午夜成人免费电影 | 国产日韩欧美一区二区 | 久久精品国产亚洲一区二区三区 | 国产成人aⅴ | 精品一区二区三区四区五区 | 欧美一区二 | 精品电影| 国产91视频在线观看 | 欧美最猛性xxxxx亚洲精品 | 久久久久久久99精品免费观看 | 欧美一区二区三区电影 | 天天干狠狠 | av免费观看网站 | 华人黄网站大全 | 国产精品一区在线 | 精品久| 黄网在线 | 久操国产 | 97精品国产 | 精品中文字幕一区二区 | 不卡一区二区三区四区 | 亚州国产精品视频 | 国产精品免费在线 | 亚洲一级在线 | 日韩欧美视频一区 | 50人群体交乱视频 | 亚洲成人精品视频 | 999视频在线 | 一级全黄少妇性色生活片免费 | 一区二区三区国产好 | 99re6在线视频精品免费 | 性开放xxxhd视频 | 五月天在线婷婷 | 一区二区三区免费看 | 精品无码久久久久久国产 | 亚洲精品成人a8198a | 国产精品久久久久久久久软件 | 精品久久久久一区二区国产 | 一区二区在线视频 | 91av免费| 91久久 | 日韩免费在线观看视频 | 国产精品精品视频一区二区三区 | 成人三级网址 | 91亚洲成人 | 男女羞羞视频免费观看 | 国产乱码精品一区二区三区忘忧草 | 免费黄色在线视频 | 欧美日韩一二三区 | 国产午夜视频 | gav成人免费播放视频 | 日韩精品一区二区三区中文在线 | 午夜视频在线观看网站 | 亚洲蜜臀av乱码久久精品蜜桃 | 免费日韩 | 精产国产伦理一二三区 | 成人黄视频在线观看 | 亚洲 欧美 日韩在线 | 国产一级视频在线播放 | 成人网页 | 久久久一区二区 | 午夜国产羞羞视频免费网站 | 视频二区 | 久久久国产一区 | 日韩精品小视频 | 日韩和的一区二区 | 亚洲欧美激情视频 | 午夜激情在线播放 | 国产成人91| 美女视频一区 | 91色电影| 亚洲国产精品一区二区久久 | 精品日本久久 | 久久小草 | 六月综合激情 | 国产精品一区二区不卡 | 在线涩涩 | 欧美a区| 亚洲视频在线播放 | 一级高清视频 | 一区二区三区四区在线 | 欧美精品在线一区 | 亚洲一区二区在线 | 久久久tv | 欧美日韩美女 | 国产综合精品一区二区三区 | 色爱综合网| 久久伊| 99re| av片网站| 99色综合| 久久久久亚洲av毛片大全 | av在线三级 | zzzzyyyy精品国产 | 日韩欧美中文字幕在线视频 | 91精品国产乱码久久久久久久久 | 久久久久久久99精品免费观看 | 亚洲一二| 久草院线 | 国产日韩91 | 欧美一级二级视频 | 在线观看成人 | 中文字幕成人在线 | 欧美一级成人欧美性视频播放 | 日本五月婷婷 | av网址在线播放 | 国产欧美日本 | 久久福利 | 二区欧美 | 免费激情av | 亚洲欧美福利视频 | ririsao久久精品一区 | 在线亚洲成人 | 91久久精品日日躁夜夜躁国产 | 久久婷婷色 | 日韩美香港a一级毛片免费 国产综合av | 日韩视频在线观看视频 | 国产美女精品一区二区三区 | 亚洲国产精品福利 | 日本一区二区三区免费观看 | 国产视频中文字幕 | www成人精品| 在线精品亚洲欧美日韩国产 | 欧美日韩一区二区三区在线观看 | 亚洲精品在线播放 | 黄色一级毛片 | 中文精品一区二区三区 | 九一视频在线免费观看 | 国产一区二区三区四区在线观看 | 99精品在线观看 | 第四色影音先锋 | 亚洲日韩aⅴ在线视频 | 久久99精品久久久久久久青青日本 | 亚洲精品久久久久久下一站 | 亚洲一区二区三区视频 | 在线观看免费毛片视频 | 久久精品系列 | 亚洲成人免费视频在线观看 | 日韩综合网 | 伊人超碰在线 | 色九九九 | 北条麻妃99精品青青久久 | 成人日韩av | 日本亚洲精品一区二区三区 | 久久中文视频 | 国产成人99|