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

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

Spring框架接入單機(jī)Redis兩種實(shí)現(xiàn)方式解析

瀏覽:56日期:2023-08-11 18:26:26

1、Redis的簡(jiǎn)單介紹

1)Redis 是一個(gè)開(kāi)源(BSD許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu),如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與范圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。 這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。Redis 內(nèi)置了 復(fù)制(replication),LUA腳本(Lua scripting), LRU驅(qū)動(dòng)事件(LRU eviction),事務(wù)(transactions) 和不同級(jí)別的 磁盤持久化(persistence), 并通過(guò) Redis哨兵(Sentinel)和自動(dòng) 分區(qū)(Cluster)提供高可用性(high availability)。Redis 是完全開(kāi)源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。

2)Redis的內(nèi)存管理機(jī)制:

在Redis中,并不是所有的數(shù)據(jù)都一直存儲(chǔ)在內(nèi)存中的。當(dāng)物理內(nèi)存用完時(shí),Redis可以將一些很久沒(méi)用到的value交換到磁盤。Redis只會(huì)緩存所有的key的信息,如果Redis發(fā)現(xiàn)內(nèi)存的使用量超過(guò)了某一個(gè)閥值,將觸發(fā)swap的操作,Redis根據(jù)“swappability = age*log(size_in_memory)”計(jì)算出哪些key對(duì)應(yīng)的value需要swap到磁盤。然后再將這些key對(duì)應(yīng)的value持久化到磁盤中,同時(shí)在內(nèi)存中清除。這種特性使得Redis可以保持超過(guò)其機(jī)器本身內(nèi)存大小的數(shù)據(jù)。

3)Redis性能和集群管理:

Redis雖然支持?jǐn)?shù)據(jù)的持久化,但是全內(nèi)存畢竟才是其高性能的本質(zhì)。作為基于內(nèi)存的存儲(chǔ)系統(tǒng)來(lái)說(shuō),機(jī)器物理內(nèi)存的大小就是系統(tǒng)能夠容納的最大數(shù)據(jù)量。如果需要處理的數(shù)據(jù)量超過(guò)了單臺(tái)機(jī)器的物理內(nèi)存大小,就需要構(gòu)建分布式集群來(lái)擴(kuò)展存儲(chǔ)能力。Redis更偏向于在服務(wù)器端構(gòu)建分布式存儲(chǔ)。

4)Redis 同其他 key - value 緩存數(shù)據(jù)庫(kù)比較具有以下

Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。 Redis不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。 Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

5)Redis優(yōu)勢(shì)

.性能極高 ? Redis能讀的速度是110000次/s,寫(xiě)的速度是81000次/s 。 .豐富的數(shù)據(jù)類型 ? Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作。 .原子 ? Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個(gè)操作是原子性的。多個(gè)操作也支持事務(wù),即原子性,通過(guò)MULTI和EXEC指令包起來(lái)。 .豐富的特性 ? Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。 .Redis運(yùn)行在內(nèi)存中但是可以持久化到磁盤,所以在對(duì)不同數(shù)據(jù)集進(jìn)行高速讀寫(xiě)時(shí)需要權(quán)衡內(nèi)存,因?yàn)閿?shù)據(jù)量不能大于硬件內(nèi)存。在內(nèi)存數(shù)據(jù)庫(kù)方面的另一個(gè)優(yōu)點(diǎn)是,相比在磁盤上相同的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在內(nèi)存中操作起來(lái)非常簡(jiǎn)單,這樣Redis可以做很多內(nèi)部復(fù)雜性很強(qiáng)的事情。同時(shí),在磁盤格式方面他們是緊湊的以追加的方式產(chǎn)生的,因?yàn)樗麄儾⒉恍枰M(jìn)行隨機(jī)訪問(wèn)。

2、spring框架中接入redis的兩種方式:

步驟1:引入相關(guān)依賴

<!--使用jedis 需要引入 commons-pool 的依賴,否則Jedis會(huì)實(shí)例化失敗--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.2.RELEASE</version> </dependency> <!-- redis中 如果存儲(chǔ)的是Map<String,Object>需要導(dǎo)入jackson相關(guān)的包,存儲(chǔ)的時(shí)候使用json序列化器存儲(chǔ)。如果不導(dǎo)入jackson的包會(huì)報(bào)錯(cuò)。 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.1</version> </dependency>

步驟2:Redis相關(guān)屬性文件:redis.properties

#訪問(wèn)地址redis.host=127.0.0.1#訪問(wèn)端口redis.port=6379#注意,如果沒(méi)有password,此處不設(shè)置值,但這一項(xiàng)要保留redis.password=@redisLearn#最大空閑數(shù),數(shù)據(jù)庫(kù)連接的最大空閑時(shí)間。超過(guò)空閑時(shí)間,數(shù)據(jù)庫(kù)連接將被標(biāo)記為不可用,然后被釋放。設(shè)為0表示無(wú)限制。redis.maxIdle=300#連接池的最大數(shù)據(jù)庫(kù)連接數(shù)。設(shè)為0表示無(wú)限制redis.maxActive=600#最大建立連接等待時(shí)間。如果超過(guò)此時(shí)間將接到異常。設(shè)為-1表示無(wú)限制。redis.maxWait=1000#在borrow一個(gè)jedis實(shí)例時(shí),是否提前進(jìn)行alidate操作;如果為true,則得到的jedis實(shí)例均是可用的;redis.testOnBorrow=true#客戶端連接超時(shí)時(shí)間redis.timeout=30000#可用數(shù)據(jù)庫(kù)數(shù)redis.database = 0

步驟3:Spring中引入Redis配置、及調(diào)用實(shí)例(方式1和方式2選擇其中一種進(jìn)行配置)

方式1:通過(guò)spring-data-redis工具實(shí)現(xiàn)對(duì)Redis的操作 spring-redis.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://www.springframework.org/schema/beans' xmlns:context='http://www.springframework.org/schema/context' xmlns:aop='http://www.springframework.org/schema/aop' xmlns:tx='http://www.springframework.org/schema/tx' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd'> <!-- 連接池基本參數(shù)配置,類似數(shù)據(jù)庫(kù)連接池 --> <context:property-placeholder location='classpath:conf/redis.properties' ignore-unresolvable='true' /> <!-- redis連接池 --> <bean class='redis.clients.jedis.JedisPoolConfig'> <property name='maxTotal' value='${redis.maxActive}' /> <property name='maxIdle' value='${redis.maxIdle}' /> <property name='testOnBorrow' value='${redis.testOnBorrow}' /> </bean> <!-- 連接池配置,類似數(shù)據(jù)庫(kù)連接池 --> <bean class='org.springframework.data.redis.connection.jedis.JedisConnectionFactory'> <property name='hostName' value='${redis.host}'></property> <property name='port' value='${redis.port}'></property> <!-- <property name='password' value='${redis總結(jié).pass}'></property> --> <property name='poolConfig' ref='poolConfig'></property> </bean> <!--redis操作模版,使用該對(duì)象可以操作redis --> <bean > <property name='connectionFactory' ref='jedisConnectionFactory' /> <!--如果不配置Serializer,那么存儲(chǔ)的時(shí)候缺省使用String,如果用User類型存儲(chǔ),那么會(huì)提示錯(cuò)誤User can’t cast to String?。?--> <property name='keySerializer' > <bean /> </property> <property name='valueSerializer' > <bean /> </property> <property name='hashKeySerializer'> <bean /> </property> <property name='hashValueSerializer'> <bean /> </property> <!--開(kāi)啟事務(wù) --> <property name='enableTransactionSupport' value='true'></property> </bean ></beans>

方式2:通過(guò)jedis客戶端工具實(shí)現(xiàn)對(duì)Redis的操作 spring-jedis.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://www.springframework.org/schema/beans' xmlns:context='http://www.springframework.org/schema/context' xmlns:aop='http://www.springframework.org/schema/aop' xmlns:tx='http://www.springframework.org/schema/tx' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd'> <!-- 連接池基本參數(shù)配置,類似數(shù)據(jù)庫(kù)連接池 --> <context:property-placeholder location='classpath:conf/redis.properties' ignore-unresolvable='true' /> <!-- redis連接池 --> <bean class='redis.clients.jedis.JedisPoolConfig'> <property name='maxTotal' value='${redis.maxActive}' /> <property name='maxIdle' value='${redis.maxIdle}' /> <property name='testOnBorrow' value='${redis.testOnBorrow}' /> </bean> <bean class='redis.clients.jedis.JedisPool'> <constructor-arg name='poolConfig' ref='poolConfig' /> <constructor-arg name='host' value='${redis.host}' /> <constructor-arg name='port' value='${redis.port}' type='int' /> <constructor-arg name='timeout' value='${redis.timeout}' type='int' /> <constructor-arg name='password' value='${redis.password}' /> <constructor-arg name='database' value='${redis.database}' type='int' /> </bean></beans>

步驟4:在web.xml中進(jìn)行 進(jìn)行 servletContext上下文讀取

<context-param> <param-name>contextConfigLocation</param-name> <param-value> <!--classpath:spring/spring-redis.xml,--> classpath:spring/spring-jedis.xml, </param-value> </context-param>

步驟5:接入測(cè)試

方式1:測(cè)試代碼

@Controller@RequestMapping('/redis')public class RedisController {@Resource(name='redisTemplate') private RedisTemplate redisTemplate; @RequestMapping('/operate.do') @ResponseBody public Map springRedisDo() { Map result=new HashMap(); // stringRedisTemplate的操作 // String讀寫(xiě) redisTemplate.delete('myStrKey'); redisTemplate.opsForValue().set('myStrKey', 'strValue'); String strValue= (String) redisTemplate.opsForValue().get('myStrKey'); result.put('strValue',strValue); // List讀寫(xiě) redisTemplate.delete('myListKey'); redisTemplate.opsForList().rightPush('myListKey', 'listValue1'); redisTemplate.opsForList().rightPush('myListKey', 'listValue2'); redisTemplate.opsForList().leftPush('myListKey', 'listValue3'); List<String> myListKeyValues = redisTemplate.opsForList().range('myListKey', 0, -1); for (String s : myListKeyValues) { System.out.println('myListKey數(shù)據(jù)元素>>>'+s); } result.put('myListKeyValues',myListKeyValues); // Set讀寫(xiě) redisTemplate.delete('mySet'); redisTemplate.opsForSet().add('mySetKey', 'setValue1'); redisTemplate.opsForSet().add('mySetKey', 'setValue2'); redisTemplate.opsForSet().add('mySetKey', 'setValue3'); redisTemplate.opsForSet().add('mySetKey', 'setValue3'); redisTemplate.opsForSet().add('mySetKey', 'setValue3'); Set<String> setValues = redisTemplate.opsForSet().members('mySetKey'); for (String s : setValues) { System.out.println('mySetKey數(shù)據(jù)元素>>>'+s); } result.put('setValues',setValues); // Hash讀寫(xiě) redisTemplate.delete('myHashKey'); redisTemplate.opsForHash().put('myHashKey', 'BJ', '北京'); redisTemplate.opsForHash().put('myHashKey', 'SH', '上海'); redisTemplate.opsForHash().put('myHashKey', 'TJ', '天津'); Map<String, String> hashValues = redisTemplate.opsForHash().entries('myHashKey'); List myHashList= redisTemplate.opsForHash().values('myHashKey'); System.out.println('myHashList數(shù)據(jù)信息>>>'+myHashList); for (Map.Entry entry : hashValues.entrySet()) { System.out.println('myHashValues>>>'+entry.getKey() + ' - ' + entry.getValue()); } result.put('hashValues',hashValues); return result; }}

spring 封裝了 RedisTemplate 對(duì)象來(lái)進(jìn)行對(duì)redis的各種操作,它支持所有的 redis 原生的 api。在RedisTemplate中提供了幾個(gè)常用的接口方法的使用,分別是:

RedisTemplate中定義了對(duì)5種數(shù)據(jù)結(jié)構(gòu)操作

redisTemplate.opsForValue();//操作字符串 redisTemplate.opsForHash();//操作hash redisTemplate.opsForList();//操作list redisTemplate.opsForSet();//操作set redisTemplate.opsForZSet();//操作有序set

注:StringRedisTemplate與 RedisTemplate關(guān)系

StringRedisTemplate繼承RedisTemplate,兩者的數(shù)據(jù)是不共通的;也就是說(shuō)StringRedisTemplate只能管理StringRedisTemplate里面的數(shù)據(jù),RedisTemplate只能管理RedisTemplate中的數(shù)據(jù)。SDR默認(rèn)采用的序列化策略有兩種,一種是String的序列化策略,一種是JDK的序列化策略。StringRedisTemplate默認(rèn)采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。RedisTemplate默認(rèn)采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。

方式2:測(cè)試代碼

@Controller@RequestMapping('/jedis/')public class JedisController { @Autowired private JedisPool jedisPool; /** * @Method: * @Author: * @Description: * param: 通過(guò)jedis客戶端,往Redis中 存入數(shù)據(jù) * @Return: * @Exception: * @Date: 2020/9/10 10:38 */ @RequestMapping('save') @ResponseBody public Map getSave(String key, String val) { Map result=new HashMap(); boolean executeResult=false; Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, val); executeResult=true; } catch (Exception e) { System.out.println('獲取jedis鏈接異常'+e); } result.put('executeResult',executeResult); return result; } /** * @Method: * @Author: * @Description: * param: 查詢Redis中存儲(chǔ)的信息 * @Return: * @Exception: * @Date: 2020/9/10 10:40 */ @RequestMapping('queryKeyInfo.do') @ResponseBody public Map getKey(String key) { Map result=new HashMap(); Jedis jedis = jedisPool.getResource(); String redisValue=jedis.get(key); result.put('key',redisValue); return result; }}

通過(guò)redis.clients.jedis.JedisPool來(lái)管理,即通過(guò)池來(lái)管理,通過(guò)池對(duì)象獲取jedis實(shí)例,然后通過(guò)jedis實(shí)例直接操作redis服務(wù),剔除了與業(yè)務(wù)無(wú)關(guān)的冗余代碼,從工廠類到池的方式變化,就相當(dāng)于mybatis連接mysql方變化是一樣的,代碼變得更簡(jiǎn)潔,維護(hù)也更容易了。Jedis使用apache commons-pool2對(duì)Jedis資源池進(jìn)行管理,所以在定義JedisPool時(shí)一個(gè)很重要的參數(shù)就是資源池GenericObjectPoolConfig

注:使用JedisPool 的方式進(jìn)行redis操作時(shí)候,需要設(shè)置redis服務(wù)的登錄密碼,否則會(huì)有相應(yīng)的錯(cuò)誤提示。redis.windows.conf 文件中 通過(guò)修改requirepass 信息來(lái)進(jìn)行redis服務(wù)訪問(wèn)密碼設(shè)置,并通過(guò)redis-server.exe redis.windows.conf 命令方式進(jìn)行訪問(wèn),否則會(huì)報(bào)錯(cuò):redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产精品二区一区 | 国产成人精品一区二区在线 | 久久精品日产高清版的功能介绍 | 久久69精品久久久久久久电影好 | 男人的天堂在线视频 | 国产精品视频导航 | www.91av在线| 欧美成视频 | 日本高清视频网站www | hh99me在线观看 | 日韩精品一区二区三区在线观看 | 欧美日韩亚洲在线 | 国产乱码精品一区二区三区爽爽爽 | 欧美一级日韩片 | 日本黄网站在线观看 | 精品国产一区二区三区性色av | 成人a在线视频免费观看 | 国产激情一区二区三区 | 精品日韩av | 精品天堂 | 特级a做爰全过程片 | 亚洲国产一区在线 | 九九精品视频在线观看 | av中文字幕第一页 | 亚洲免费视频在线观看 | 中文字幕精品一区久久久久 | 国产精品毛片一区二区在线看 | 久久精品视频免费 | 日本黄色a级 | 国产女人高潮视频在线观看 | 午夜影院网站 | 亚洲久久久 | 亚洲精品国产电影 | 99精品国产高清在线观看 | 久久精品国产亚洲一区二区三区 | 一区二区精品视频在线观看 | 免费的av在线 | 亚洲成人三级 | 国产日韩精品一区二区 | 精精国产xxxx视频在线 | 久草视频免费看 | 日韩精品一区二区三区中文在线 | 在线日韩视频 | 日韩中文字幕在线观看 | 福利视频三区 | 久久久久一区二区三区 | 91精品中文字幕一区二区三区 | 大黄网站在线观看 | 免费看毛片的网站 | 亚洲欧美一区二区三区在线 | 精品国产一区二区三区在线观看 | av影音在线| 国产精品视频区 | 日本精品一区二区三区在线观看 | 亚洲成人在线观看视频 | 午夜成人免费视频 | 一区二区三区在线免费观看 | 国产精品久久久久久久久久东京 | 日韩在线视频观看免费 | 我和我的祖国电影在线观看免费版高清 | 99精品欧美一区二区三区综合在线 | 97精品视频在线 | 玖玖操 | 中文av在线免费观看 | 欧美视频精品在线 | 99pao成人国产永久免费视频 | 狠狠av| 成人免费一区二区三区视频网站 | 久久亚洲网 | 亚洲久草 | 久久国产精彩视频 | 亚洲一区二区黄 | 日韩视频国产 | 国产精品一区二区三区免费视频 | 在线一区二区三区做爰视频网站 | 色综合久久久久综合99 | 三级在线观看 | 一区二区三区国产视频 | 久久最新| 成人做爰999| 国产成人精品一区一区一区 | 欧美二区三区 | 中文字幕成人 | 啪啪免费网站 | 国产99在线 | 欧美 | 久久精品这里有 | 国产片av | 日韩一区二区三区在线视频 | 亚洲欧美高清 | 久久久久久久久久影院 | 欧美久久久久久久久久久久久久 | 一级日韩片| www.国产精品 | 欧美成人精品一区二区三区 | 美女视频一区 | 国产福利一区二区 | 国产精品欧美日韩在线观看 | 四虎免费紧急入口观看 | 操人网址| 在线播放高清视频www | 国产精品久久久久久久久久 | 毛片毛片毛片毛片毛片毛片 | 五月网婷婷 | 91资源在线观看 | 乳色吐息在线观看 | 久久av资源网| 日本在线观看网站 | 国产免费看 | 国产特黄一级 | 亚洲精品成人免费 | 欧美一区二区三区黄色 | 日韩一区二区不卡 | 亚洲免费视频网 | 国产精品久久久久久久久久久久久 | 亚洲国产中文字幕 | 亚洲啊v在线 | 天天精品视频免费观看 | 久久久二| 狠狠撸在线 | 一区二区三区免费在线 | 伊人网亚洲 | 亚洲啊v在线 | 91小视频| 精品久| 日韩爱爱网 | 欧美日韩中文字幕在线 | 日日夜夜av | 91亚洲一区| 综合一区二区三区 | 国产一区二区视频在线观看 | 一区二区三区在线免费播放 | 性培育学校羞耻椅子调教h 欧美精品网站 | 精品视频在线免费观看 | 一级性大片| 欧洲精品视频在线观看 | 国产精品成人一区二区三区夜夜夜 | 国产高清在线精品一区二区三区 | 久久久久久国产精品高清 | 国产一区二区三区四区视频 | 欧美一区二区大片 | 日韩欧美视频在线 | 视频一区二区三区中文字幕 | av在线播放国产 | 免费国产在线视频 | 国产精品一区二区三区在线免费观看 | 国产香蕉视频在线播放 | 国产一区视频在线 | 国产片在线观看 | 午夜婷婷色 | 欧美国产在线观看 | 亚洲一区在线免费观看 | 国产三级日本三级美三级 | 黄免费看| 国产精品国产精品国产专区不卡 | 亚洲视频免费在线 | 夜夜草视频 | 日韩精品一区二区三区四区五区 | 日韩在线免费 | 97碰碰碰免费公开在线视频 | 国产在线中文字幕 | 亚洲欧美在线观看 | 中文字幕乱码亚洲精品一区 | 国产成人在线播放 | 亚洲国产精品一区二区久久 | 中文字幕一区二区三区乱码图片 | 国产久| 91福利电影在线观看 | 国产三级在线 | 中文字幕国产在线视频 | 久久99精品久久久久婷婷暖91 | 欧美激情在线精品一区二区三区 | 午夜影院久久 | 久久久免费 | 国产在线精品一区二区 | 亚洲人在线播放 | 综合精品 | 日韩综合视频在线观看 | 亚洲精品粉嫩美女一区 | 日本一二三区视频 | 久久久久亚洲精品 | 欧美一区2区三区4区公司二百 | 91九色视频pron | 91久久 | 久久久中文字幕 | 亚洲aⅴ天堂av在线电影软件 | 国产xvideos免费视频播放 | 国产精品久久久久久久久久久久久 | 精品香蕉一区二区三区 | 九九r热| 日一日干一干 | 在线中文字幕av | 国产区在线观看 | 国产中文字幕在线观看 | 色爱区综合 | 黄色一级片视频播放 | 亚洲一区视频 | 国产高清美女一级a毛片久久 | 91av视频在线观看 | 久久精品2| 麻豆产精国品免费入口 | h片免费 | 日本免费在线视频 | 日韩免费一区二区 | 蜜桃av一区二区三区 | 亚洲欧美日韩另类精品一区二区三区 | 精品国产鲁一鲁一区二区三区 | 97人人干 | 日韩毛片在线观看 | av看片网| 午夜影院a | 黄网在线观看 | 久久久久一区二区三区 | 欧美精品成人一区二区三区四区 | 黄在线看 | 免费av在线网站 | 伊人yinren22综合开心 | 久久久国产精品 | 国产亚洲一区二区在线 | 国产欧美日本 | 综合色婷婷一区二区亚洲欧美国产 | 精品欧美乱码久久久久久 | 99久久精品免费看国产一区二区三区 | 一级免费黄色免费片 | 中文字幕在线三区 | 色婷婷亚洲 | 国产精品视频久久久 | 国产精品久久久久久久久久久久 | 日韩不卡av| 国产精品久久嫩一区二区免费 | 人人玩人人添人人澡97 | 久久国产精品免费一区二区三区 | 中文字幕一区二区三区四区 | 欧美一级一区 | 91精品国产综合久久久蜜臀粉嫩 | 国产一区二区综合 | 欧美三级视频在线播放 | 91久久久久久久久久久久久久久久 | 欧美性吧 | 国产三级久久久久 | 91精品久久久久久久 | 久久精品成人 | 成人激情视频免费观看 | 国产精久 | 日韩精品一区二区三区在线观看 | 杨门女将寡妇一级裸片看 | 亚洲一区二区三区在线 | 精品乱子伦一区二区三区 | 久久精品99| 久久久一区二区三区 | 色网网站| 中文字幕一区在线观看视频 | 亚洲欧美国产精品久久久久 | 成人看片免费 | 欧美日本国产一区 | 亚洲 欧美 日韩 在线 | 综合久久久久 | 性人久久久 | 亚洲精品福利网站 | 一级毛片观看 | 午夜久久久 | 伊人电院网 | 天天干国产 | 国产日韩在线播放 | 97国产免费 | 国产主播福利 | 人操人人 | 久久亚洲欧美日韩精品专区 | 欧美精品免费在线观看 | 日韩激情视频一区二区 | 日日操视频 | 亚洲成人一区二区 | 欧美人人 | 不卡一区二区三区四区 | 精品国产乱码久久久久久丨区2区 | 亚洲a级 | 后进极品白嫩翘臀在线视频 | 美国黄色毛片女人性生活片 | 久久男人天堂 | 国产一级一级片 | 97国产精品视频人人做人人爱 | 天天干视频 | 国产不卡免费视频 | 日韩精品免费在线观看 | 亚洲午夜精品在线观看 | 久久99久久98精品免观看软件 | 国产一二三区在线播放 | 亚洲久草| 久久精品成人 | 另类一区 | 九九九色 | 一级毛片大全免费播放 | 国产精品99久久久久久www | 免费一区二区三区 | 国产精品久久嫩一区二区免费 | 一级毛片视频播放 | 国产精品久久久久久久久久10秀 | 在线观看一区 | 国产精彩视频 | 久久精品一区二区三区中文字幕 | 国产在线欧美 | 999成人网| 欧美区在线 | 91观看| 影音先锋亚洲资源 | 亚洲三区在线观看 | 午夜影院a | 精品久久久久久久久久久 | 日韩视频中文字幕 | 久久久一| 免费观看一级特黄欧美大片 | 色视频网站免费看 | 欧美视频免费在线观看 | 丁香久久 | 欧美成人精品激情在线观看 | 国产成人精品久久二区二区 | 欧美色综合天天久久综合精品 | 亚洲精品在线看 | 亚洲欧美综合精品久久成人 | 91精品国产人妻国产毛片在线 | 精品久久久久久久久久久久 | 中国特级毛片 | 神马久久久久久久 | 四虎影视免费在线观看 | 蜜桃免费一区二区三区 | 91亚洲精品在线观看 | av免费黄色| av在线国产精品 | 狠狠ri| 曰本人一级毛片免费完整视频 | 久久精品在线观看视频 | 草草视频在线播放 | 毛片网| 国产精品亚洲一区二区三区 | 99热最新网站 | 午夜av电影院 | 久久se精品一区精品二区 | 久久三区 | 欧美一区二区三区 | 亚洲视频一区 | 久久影音先锋 | 精品美女在线观看视频在线观看 | 欧美在线观看一区 | 中文字幕视频在线观看 | 日本免费在线 | 欧美日韩国产在线播放 | 欧美一级电影免费观看 | 日韩中文在线视频 | 99精品视频一区二区三区 | 色婷综合网 | 91一区| 成人免费视频视频在线观看 免费 | 国产精品一二区 | 国产一区二区av在线 | 依人成人综合网 | 91精品国产综合久久久久久蜜月 | 亚洲高清www | 国产一区二区三区四区视频 | 国产一级特黄视频 | 情一色一乱一欲一区二区 | 91精品国产综合久久国产大片 | 成人在线观看免费视频 | 裸体的日本在线观看 | 亚洲骚片 | 欧美不卡一区二区 | 九九视频在线 | 久久久久91 | 中文字幕日韩欧美 | 久久久亚洲精品中文字幕 | 久久99国产精品 | 精品国产一区二区三区久久久久久 | 久久精品无码一区二区日韩av | 色综合天天天天做夜夜夜夜做 | 国产亚洲精品美女久久久久久久久久 | 欧美精品三区 | 自拍偷拍一区二区三区 | 国产黑丝在线 | 精久久| 人人干人人看 | 中文字幕成人网 | 国产精品毛片久久久久久久 | 亚洲国产精品自拍 | 亚洲高清视频在线观看 | 亚洲日韩欧美一区二区在线 | 亚洲男人网 | 欧美久久久久久久久久 | 亚洲精品久久久久avwww潮水 | 日韩视频三区 | 日韩免费激情视频 | 羞羞视频在线免费观看 | 暖暖av| 丁香久久| 精品久久久久久久久久久久久久 | 7878www免费看片 | 国产伦精品一区二区三区四区视频 | 国产一区二区三区视频在线观看 | av官网| 国产精品成人一区二区 | 免费网站看v片在线a | 亚洲视频 欧美视频 | 日本高清视频一区二区三区 | 久久亚洲一区二区 | 亚洲国产高清在线 | 91一区二区| 伊人激情综合网 | 欧洲精品视频一区 | 青青草免费在线 | 国产亚洲精品美女久久久久久久久久 | 精品视频一区二区三区在线观看 | 欧洲一级黄 | 精品亚洲一区二区三区 | 99久久精品国产毛片 | 久久国产亚洲精品 | 高清国产一区 | 国产精品99久久免费观看 | 国产一区视频网站 | 国产午夜精品一区二区三区嫩草 | 中文字幕99 | 国产日韩欧美在线观看 | 欧美专区在线观看 | 国产日韩一区二区 | 国产精品久久久久9999赢消 | 久久99亚洲精品 | 欧美一区二区视频 | 久久在线视频 | 国产精品久久久久久妇女6080 | 日韩在线二区 | 日韩视频精品在线观看 | 久久久网 | 国产一区免费 | 一卡二卡久久 | 国产成人精品一区二 | 日韩三级在线免费观看 | 天天干人人 | 欧美成人免费视频 | 成人在线不卡 | 在线观看免费av电影 | 精品久久久久香蕉网 | 99在线看 | 日韩一区二区三区在线看 | 欧美视频网站 | 女同理伦片在线观看禁男之园 | 国内精品一区二区 | 国产黄色精品 | 国产精品国产精品国产专区不片 | 高清国产一区二区三区四区五区 | 久热官网 | 国产成人综合av | 成人精品在线视频 | 国产精品无码久久久久 | 希岛爱理在线 | 午夜久久久 | 日韩欧美成人一区二区三区 | 久久噜噜噜精品国产亚洲综合 | av天天网| 黄a在线| 国产真实精品久久二三区 | 国产一区二区精品 | 成人一级视频在线观看 | 久久伦理电影 | 美女一级黄 | 99re视频 | 午夜激情影院 | 色乱码一区二区三区网站 | 色综合一区二区三区 | 中文字幕一区二区三区四区五区 | 天天爽夜夜春 | 成人精品视频一区二区三区 | 国产高清一级片 | 天天操天天干天天干 | 亚洲自拍偷拍欧美 | 久久久久久中文字幕 | 一区二区三区在线视频播放 | 精品综合久久 | 欧美一级艳片视频免费观看 | 午夜精品一区二区三区免费视频 | 亚洲天堂色2017 | 中文字幕亚洲精品 | 99热精品免费 | 亚洲精品久久久久久一区二区 | 日韩在线不卡 | 国内精品久久久久 | 国产高清久久久 | av天天干| 日韩一及片 | 超碰日韩在线 | a视频在线观看 | 特级a做爰全过程片 | 性做久久久久久久免费看 | 日韩一区二区在线播放 | 亚洲第一天堂无码专区 | 99精品欧美一区二区三区综合在线 | 亚洲电影一区二区三区 | 中文字幕视频三区 | 不卡视频一区二区 | 欧美激情视频一区二区三区在线播放 | 亚洲激情欧美 | 亚洲一区在线免费观看 | www.日本精品 | 国产精品99久久久久久久vr | 久久国产成人 | 高清一区二区三区视频 | 日韩不卡av| 亚洲精品久久久久一区二区三区 | 国产高清一区 | 欧美成人一区二区三区片免费 | 精品久久久久久久久久久久 | 成人欧美一区二区三区黑人孕妇 | 可以在线观看的黄色 | 久久久久久99 | 一级二级在线观看 | 亚洲另类小视频 | 一区二区三区在线视频播放 | 波多野结衣一区三区 | 久久国产欧美日韩精品 | 一区二区精品在线 | 天天夜夜操 | 91免费视频 | 七七婷婷婷婷精品国产 | 天天插天天干 | 好色视频在线观看 | 6080夜射猫 | 国产亚洲一区二区三区 | xvideos视频| 蜜月久综合久久综合国产 | 蜜臀影院 | 国产高清一区二区 | 亚洲高清视频一区二区三区 | 国产一区二区三区不卡在线观看 | 九九国产 | 成人在线网址 | 亚洲午夜电影 | 欧美精品一区在线发布 | 亚洲精品一区二三区不卡 | 污视频在线免费观看 | www.狠狠干| 久久精品一区二区三区中文字幕 | 特级生活片 | 91视频电影 | 狠狠的日| 欧美一级在线视频 | 在线播放国产一区二区三区 | 欧美 日韩 国产 在线 | 国产精品91视频 | 久久久精品亚洲 | 久久精品com | 精品国产31久久久久久 | 国产伦精品一区二区三区四区视频_ | 蕉伊人 | 国产网站在线 | 日日精品| 欧美成年黄网站色视频 | 玖玖久久 | 青娱乐国产视频 | 欧美日韩精品一区二区在线播放 | 久久国产精品99久久久久久老狼 | 欧美日韩在线精品 | 欧美一区二区三区黄 | a免费观看| 国产美女黄色片 | 日本精品视频在线观看 | 亚洲国产精品99久久久久久久久 | 国产精品激情在线观看 | 久草天堂 | 中文字幕视频在线免费观看 | 国产一区在线不卡 | 黄色国产视频 | 欧美最猛性xxxxx亚洲精品 | 中文字幕乱码一区二区三区 | 久久手机视频 | 国产精品一区二区视频 | 国产精品亚洲欧美日韩一区在线 | 精品999www| 亚洲精品一区二区三区中文字幕 | 国产高清网站 | 一区二区三区四区在线 | 亚洲免费在线观看 | 国产综合区 | 日本在线观看 | 欧美另类亚洲 | 中文字幕av一区二区三区免费看 | 久久这里只有精品首页 | 91精品久久久久久综合五月天 | 一级黄色大片免费 | 最新国产精品 | 男女羞羞视频网站 | 小川阿佐美88av在线播放 | 国产精品成人在线观看 | 亚洲人久久| www成人精品| 欧美日韩综合在线 | 五月免费视频 | 国产女无套免费网站 | 国产精品高潮呻吟久久av野狼 | 一区二区中文字幕 | 日韩免费av一区二区 | 欧美成人影院在线 | 男女羞羞视频在线免费观看 | 日韩欧美综合 | 中文字幕精品一区 | 精品国产青草久久久久福利 | 狠狠爱天天操 | 成人日韩av| 欧美日韩国产一区二区三区不卡 | 欧美三及片 | 9999亚洲| 国产精品视频播放 | 中文字幕综合 | 免费视频二区 | 国产在线不卡视频 | 色综合久久天天综合网 | 欧美日韩一 | 成人爽a毛片一区二区免费 美女高潮久久久 | 欧美成人激情视频 | 久久精品国产99国产 | 精品久久久久久久 |