久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

使用python怎么操作redis-創(chuàng)新互聯(lián)

使用python怎么操作redis?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

在肥城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網(wǎng)站、網(wǎng)站建設 網(wǎng)站設計制作定制開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,營銷型網(wǎng)站建設,成都外貿(mào)網(wǎng)站建設,肥城網(wǎng)站建設費用合理。

連接 Redis

import redisc

連接方式:redis提供了2個方法

1:StrictRedis:實現(xiàn)大部分官方的命令

2:Redis:是StrictRedis的子類,用于向后兼容舊版的redis。

官方推薦使用StrictRedis方法。

舉例(普通連接):

import redis

#decode_responses=True 自動解碼

r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode_responses=True) #默認數(shù)據(jù)庫為0

r = redis.StrictRedis(host='10.10.2.14',port=6379,password='123456',decode_responses=True)

連接池:connection pool

管理對一個redis server的所有連接,避免每次建立,釋放連接的開銷。默認,每個redis實例都會維護一個自己的連接池,可以直接建立一個連接池,作為參數(shù)傳給redis,這樣可以實現(xiàn)多個redis實例共享一個連接池。

舉例(連接池):

pool = redis.ConnectionPool(host='127.0.0.1',port=6379,password='123456',decode_responses=True)
r = redis.Redis(connection_pool=pool)

一 STRING 字符串的操作

1. r.set 設置值

#在Redis中設置值,默認不存在則創(chuàng)建,存在則修改
r.set('name', 'zhangsan')
'''參數(shù):
  set(name, value, ex=None, px=None, nx=False, xx=False)
  ex,過期時間(秒)
  px,過期時間(毫秒)
  nx,如果設置為True,則只有name不存在時,當前set操作才執(zhí)行,同setnx(name, value)
  xx,如果設置為True,則只有name存在時,當前set操作才執(zhí)行'''
r.get('name')

3. mset 批量設置值

#批量設置值
r.mset(name1='zhangsan', name2='lisi')
#或
r.mget({"name1":'zhangsan', "name2":'lisi'})

4. mget(keys, *args) 批量獲取

#批量獲取
print(r.mget("name1","name2"))
#或
li=["name1","name2"]
print(r.mget(li))

5. getset 設置新值,打印原值

#設置新值,打印原值
getset(name, value) 

print(r.getset("name1","wangwu")) #輸出:zhangsan
print(r.get("name1")) #輸出:wangwu

6. getrange 根據(jù)字節(jié)獲取子序列

#根據(jù)字節(jié)獲取子序列
getrange(key, start, end) 

r.set("name","zhangsan")
print(r.getrange("name",0,3))#輸出:zhan

7. setrange 修改字符串內(nèi)容,從指定字符串索引開始向后替換,如果新值太長時,則向后添加

#修改字符串內(nèi)容,從指定字符串索引開始向后替換,如果新值太長時,則向后添加
setrange(name, offset, value) 

r.set("name","zhangsan")
r.setrange("name",1,"z")
print(r.get("name")) #輸出:zzangsan
r.setrange("name",6,"zzzzzzz")
print(r.get("name")) #輸出:zzangszzzzzzz

8. strlen(name) 返回name對應值的字節(jié)長度

#返回name對應值的字節(jié)長度(一個漢字3個字節(jié))
r.set("name","zhangsan")
print(r.strlen("name")) #輸出:8

9. incr 值的累加 amount為累加的值

#自增mount對應的值,當mount不存在時,則創(chuàng)建mount=amount,否則,則自增,amount為自增數(shù)(整數(shù))
incr(self, name, amount=1) 

print(r.incr("mount",amount=2))#輸出:2
print(r.incr("mount"))#輸出:3
print(r.incr("mount",amount=3))#輸出:6
print(r.incr("mount",amount=6))#輸出:12
print(r.get("mount")) #輸出:12

10. append 在name對應的值后面追加內(nèi)容

#在name對應的值后面追加內(nèi)容
append(name, value)

r.set("name","zhangsan")
print(r.get("name"))  #輸出:'zhangsan
r.append("name","lisi")
print(r.get("name"))  #輸出:zhangsanlisi

11.type 查看類型

r.type(name)

二 Hash 操作

redis中的Hash 在內(nèi)存中類似于一個name對應一個dic來存儲

1. hset name對應的hash中設置一個鍵值對(不存在,則創(chuàng)建,否則,修改)

#name對應的hash中設置一個鍵值對(不存在,則創(chuàng)建,否則,修改)
hset(name, key, value)
r.hset("dic_name","a1","aa")

2. hget 在name對應的hash中根據(jù)key獲取value

r.hset("dic_name","a1","aa")
#在name對應的hash中根據(jù)key獲取value
hget(name,key) 

print(r.hget("dic_name","a1"))#輸出:aa

3. hgetall 獲取name對應hash的所有鍵值

#獲取name對應hash的所有鍵值
hgetall(name)

print(r.hgetall("dic_name"))

4. hmset 在name對應的hash中批量設置鍵值對,mapping:字典

#在name對應的hash中批量設置鍵值對,mapping:字典
hmset(name, mapping) 

dic={"a1":"aa","b1":"bb"}
r.hmset("dic_name",dic)
print(r.hget("dic_name","b1"))#輸出:bb

5. hmget 在name對應的hash中獲取多個key的值

# 在name對應的hash中獲取多個key的值
hmget(name, keys, *args) 

li=["a1","b1"]
print(r.hmget("dic_name",li))
print(r.hmget("dic_name","a1","b1"))

6.

hlen 獲取hash中鍵值對的個數(shù)

hkeys 獲取hash中所有的key的值

hvals 獲取hash中所有的value的值

dic={"a1":"aa","b1":"bb"}
r.hmset("dic_name",dic)

#hlen(name) 獲取hash中鍵值對的個數(shù)
print(r.hlen("dic_name"))

#hkeys(name) 獲取hash中所有的key的值
print(r.hkeys("dic_name"))

#hvals(name) 獲取hash中所有的value的值
print(r.hvals("dic_name"))

7. hexists 檢查name對應的hash是否存在當前傳入的key

#檢查name對應的hash是否存在當前傳入的key
hexists(name, key)

print(r.hexists("dic_name","a1"))#輸出:True

8. hdel 刪除指定name對應的key所在的鍵值對

#刪除指定name對應的key所在的鍵值對
hdel(name,*keys)  

r.hdel("dic_name","a1")

9. hincrby 自增hash中key對應的值,不存在則創(chuàng)建key=amount(amount為整數(shù))

#自增hash中key對應的值,不存在則創(chuàng)建key=amount(amount為整數(shù))
hincrby(name, key, amount=1)

print(r.hincrby("demo","a",amount=2))

10.hincrbyfloat 自增hash中key對應的值,不存在則創(chuàng)建key=amount(amount為浮點數(shù))

自增hash中key對應的值,不存在則創(chuàng)建key=amount(amount為浮點數(shù))

hincrbyfloat(name, key, amount=1.0)

三 List 操作

redis中的List在內(nèi)存中按照一個name對應一個List來存儲

1. lpush 在name對應的list中添加元素,每個新的元素都添加到列表的最左邊

# 在name對應的list中添加元素,每個新的元素都添加到列表的最左邊
lpush(name,values)

r.lpush("list_name",2)
r.lpush("list_name",3,4,5)#保存在列表中的順序為5,4,3,2

2.rpush 同lpush,但每個新的元素都添加到列表的最右邊

#同lpush,但每個新的元素都添加到列表的最右邊
rpush(name,values)

3. lpushx 在name對應的list中添加元素,只有name已經(jīng)存在時,值添加到列表的最左邊

#在name對應的list中添加元素,只有name已經(jīng)存在時,值添加到列表的最左邊
 lpushx(name,value)

4. rpushx 在name對應的list中添加元素,只有name已經(jīng)存在時,值添加到列表的最右邊

#在name對應的list中添加元素,只有name已經(jīng)存在時,值添加到列表的最右邊
 rpushx(name,value)

5. llen name對應的list元素的個數(shù)

# name對應的list元素的個數(shù)
llen(name)

print(r.llen("list_name"))

6. linsert 在name對應的列表的某一個值前或后插入一個新值

# 在name對應的列表的某一個值前或后插入一個新值
 linsert(name, where, refvalue, value))
r.linsert("list_name","BEFORE","2","SS")#在列表內(nèi)找到第一個元素2,在它前面插入SS

'''參數(shù):
   name: redis的name
   where: BEFORE(前)或AFTER(后)
   refvalue: 列表內(nèi)的值
   value: 要插入的數(shù)據(jù)'''

7. r.lset 對list中的某一個索引位置重新賦值

#對list中的某一個索引位置重新賦值
r.lset(name, index, varlue)

r.lset("list_name",0,"bbb")

8. r.lrem 刪除name對應的list中的指定值

#刪除name對應的list中的指定值
r.lrem(name, count, value) 
r.lrem("list_name",3,'ssss')

''' 參數(shù):
  name: redis的name
  value: 要刪除的值
  num:  num=0 刪除列表中所有的指定值;
      num=2 從前到后,刪除2個;
      num=-2 從后向前,刪除2個'''

9. lpop 移除列表的左側(cè)第一個元素,返回值則是第一個元素

#移除列表的左側(cè)第一個元素,返回值則是第一個元素
lpop(name) 

print(r.lpop("list_name"))

10. lindex 根據(jù)索引獲取列表內(nèi)元素

#根據(jù)索引獲取列表內(nèi)元素
lindex(name, index)

print(r.lindex("list_name",1))

11. lrange 分片獲取元素

#分片獲取元素
lrange(name, start, end)

print(r.lrange("list_name",0,-1))

12. ltrim 移除列表內(nèi)沒有在該索引之內(nèi)的值(裁剪)

#移除列表內(nèi)沒有在該索引之內(nèi)的值
ltrim(name, start, end)

r.ltrim("list_name",0,2)

13. rpoplpush(src, dst) 從一個列表取出最右邊的元素,同時將其添加至另一個列表的最左邊

# 從一個列表取出最右邊的元素,同時將其添加至另一個列表的最左邊
#src 要取數(shù)據(jù)的列表
#dst 要添加數(shù)據(jù)的列表

四 Set 操作

Set集合就是不允許重復的列表

1. sadd(name,values) 給name對應的集合中添加元素

#給name對應的集合中添加元素
r.sadd("set_name","aa")
r.sadd("set_name","aa","bb")

2. smembers(name) 獲取name對應的集合的所有成員

#獲取name對應的集合的所有成員

3. scard(name) 獲取name對應的集合中的元素個數(shù)

#獲取name對應的集合中的元素個數(shù)
r.scard("set_name")

4. sdiff(keys, *args) 在第一個name對應的集合中且不在其他name對應的集合的元素集合

#在第一個name對應的集合中且不在其他name對應的集合的元素集合
r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd")

print(r.sdiff("set_name","set_name1","set_name2"))#輸出:{aa}

6. sinter(keys, *args) 獲取多個name對應集合的并集

# 獲取多個name對應集合的并集
r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd")

print(r.sinter("set_name","set_name1","set_name2"))#輸出:{bb}

8.sismember 檢查value是否是name對應的集合內(nèi)的元素

#檢查value是否是name對應的集合內(nèi)的元素
sismember(name, value)

9. smove(src, dst, value) 將某個元素從一個集合中移動到另外一個集合

#將某個元素從一個集合中移動到另外一個集合

10. spop(name) 從集合的右側(cè)移除一個元素,并將其返回

#從集合的右側(cè)移除一個元素,并將其返回

11. srandmember(name, numbers) 從name對應的集合中隨機獲取numbers個元素

# 從name對應的集合中隨機獲取numbers個元素
print(r.srandmember("set_name2",2))

12. srem(name, values) 刪除name對應的集合中的某些值

#刪除name對應的集合中的某些值
print(r.srem("set_name2","bb","dd"))

13. sunion(keys, *args) 獲取多個name對應的集合的并集

#獲取多個name對應的集合的并集
r.sunion("set_name","set_name1","set_name2")

14. sunionstore(dest,keys, *args) 獲取多個name對應的集合的并集,并將結(jié)果保存到dest對應的集合中

#獲取多個name對應的集合的并集,并將結(jié)果保存到dest對應的集合中

五 有序集合 zset

有序集合:

在集合的基礎上,為每元素排序,元素的排序需要根據(jù)另外一個值來進行比較,所以,對于有序集合,每一個元素有兩個值,即:值和分數(shù),分數(shù)專門用來做排序。

1. zadd(name, args, *kwargs)

# 在name對應的有序集合中添加元素
r.zadd("zset_name", 6,"a1", 2, "a2", 5,"a3")
#或
r.zadd('zset_name1', b1=10, b2=5)

2. zcard(name) 獲取有序集合內(nèi)元素的數(shù)量

#獲取有序集合內(nèi)元素的數(shù)量

3. zcount(name, min, max) 獲取有序集合中分數(shù)在[min,max]之間的個數(shù)

#獲取有序集合中分數(shù)在[min,max]之間的個數(shù)
print(r.zcount("zset_name",1,5))

4. zincrby(name, value, amount) 自增有序集合內(nèi)value對應的分數(shù)

#自增有序集合內(nèi)value對應的分數(shù)
r.zincrby("zset_name","a1",amount=2)#自增zset_name對應的有序集合里a1對應的分數(shù)

5. zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)

# 按照索引范圍獲取name對應的有序集合的元素
aa=r.zrange("zset_name",0,1,desc=False,withscores=True,score_cast_func=int)
print(aa)
'''參數(shù):
  name  redis的name
  start  有序集合索引起始位置
  end   有序集合索引結(jié)束位置
  desc  排序規(guī)則,默認按照分數(shù)從小到大排序
  withscores 是否獲取元素的分數(shù),默認只獲取元素的值
  score_cast_func 對分數(shù)進行數(shù)據(jù)轉(zhuǎn)換的函數(shù)'''

6. zrevrange(name, start, end, withscores=False, score_cast_func=float)

#同zrange,集合是從大到小排序的

7. zrank(name, value)、zrevrank(name, value)

#獲取value值在name對應的有序集合中的排行位置(從0開始)
print(r.zrank("zset_name", "a2"))

print(r.zrevrank("zset_name", "a2"))#從大到小排序


 

8. zscore(name, value) 獲取name對應有序集合中 value 對應的分數(shù)

#獲取name對應有序集合中 value 對應的分數(shù)
print(r.zscore("zset_name","a1"))

9. zrem(name, values) 刪除name對應的有序集合中值是values的成員

#刪除name對應的有序集合中值是values的成員
r.zrem("zset_name","a1","a2")

10. zremrangebyrank(name, min, max) 根據(jù)排行范圍刪除

#根據(jù)排行范圍刪除

11. zremrangebyscore(name, min, max) 根據(jù)分數(shù)范圍刪除

#根據(jù)分數(shù)范圍刪除

12. zinterstore(dest, keys, aggregate=None)

r.zadd("zset_name", "a1", 6, "a2", 2,"a3",5)
r.zadd('zset_name1', a1=7,b1=10, b2=5)

# 獲取兩個有序集合的交集并放入dest集合,如果遇到相同值不同分數(shù),則按照aggregate進行操作
# aggregate的值為: SUM MIN MAX
r.zinterstore("zset_name2",("zset_name1","zset_name"),aggregate="MAX")
print(r.zscan("zset_name2"))

13. zunionstore(dest, keys, aggregate=None)

#獲取兩個有序集合的并集并放入dest集合,其他同zinterstore,

其他常用操作

1. delete(*names) 根據(jù)name刪除redis中的任意數(shù)據(jù)類型

#根據(jù)name刪除redis中的任意數(shù)據(jù)類型

2. exists(name) 檢測redis的name是否存在

#檢測redis的name是否存在

3. keys(pattern='*') 根據(jù)* ?等通配符匹配獲取redis的name

#根據(jù)* ?等通配符匹配獲取redis的name

4. expire(name ,time) 為某個name設置超時時間

# 為某個name設置超時時間

5. rename(src, dst) 重命名

# 重命名

6. move(name, db)) 將redis的某個值移動到指定的db下

# 將redis的某個值移動到指定的db下

7. randomkey() 隨機獲取一個redis的name(不刪除)

#隨機獲取一個redis的name(不刪除)

8. type(name) 獲取name對應值的類型

# 獲取name對應值的類型

python可以做什么

Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領(lǐng)域中都有廣泛的應用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

關(guān)于使用python怎么操作redis問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道了解更多相關(guān)知識。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章題目:使用python怎么操作redis-創(chuàng)新互聯(lián)
分享路徑:http://www.js-pz168.com/article4/dhdgie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計品牌網(wǎng)站建設服務器托管品牌網(wǎng)站制作搜索引擎優(yōu)化虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
日韩一区二区免费在线电影 | 性做久久久久久久久| 美女任你摸久久| www.亚洲色图.com| 青青成人在线| 欧美一级二级在线观看| 成人免费在线观看入口| 极品尤物av久久免费看| 国产精品区免费视频| 日本道色综合久久| 久久蜜桃香蕉精品一区二区三区| 亚洲一区二区三区三| 国产成人a级片| 欧美日韩国产精品一卡| 91 com成人网| 亚洲欧美日韩久久| 国产黄色91视频| 蜜桃日韩视频| 欧美一卡在线观看| 一级中文字幕一区二区| 懂色av一区二区三区免费观看| 久久综合九色99| 欧美一区二区黄色| 亚洲一卡二卡三卡四卡五卡| 成人一区二区三区中文字幕| 日韩精品另类天天更新| 精品乱人伦小说| 天堂久久一区二区三区| 91传媒视频在线观看| 91成人在线免费观看| 国产精品视频看| 国产美女视频一区| 欧美少妇一区| 2021久久国产精品不只是精品| 舔着乳尖日韩一区| 国产乱码精品一区二区三区卡 | 国产一区二区三区在线观看免费 | 色婷婷久久99综合精品jk白丝| 久久九九99视频| 精品亚洲aⅴ乱码一区二区三区| 鲁丝片一区二区三区| 日韩三级伦理片妻子的秘密按摩| 亚洲高清久久久| 成人免费在线一区二区三区| 欧美私模裸体表演在线观看| 亚洲欧美日韩一区二区| 99久久婷婷国产综合精品| 日本韩国视频一区二区| 亚洲丝袜美腿综合| av动漫一区二区| 欧美日韩一区二区三区高清 | 国产视频在线观看一区二区三区| 卡一卡二国产精品| 日本一区网站| 国产精品私人影院| 成人精品一区二区三区四区| 91国产免费看| 亚洲一区二区在线观看视频| 97人人模人人爽人人少妇| 91精品婷婷国产综合久久性色| 图片区小说区区亚洲影院| 国产一区喷水| 久久亚洲一区二区三区四区| 国产乱对白刺激视频不卡| 色综合中文综合网| 91精品欧美久久久久久动漫| 视频一区视频二区中文| 久久亚裔精品欧美| 国产亚洲精品7777| 成人久久18免费网站麻豆| 欧美日韩欧美一区二区| 五月天一区二区| 日本一区免费| 国产精品电影院| 98国产高清一区| 精品久久久久香蕉网| 国产一区视频导航| 欧美中文字幕不卡| 日韩电影在线一区| 亚洲v日韩v欧美v综合| 亚洲美女在线一区| 国产日韩精品推荐| 国产欧美日韩在线看| av亚洲产国偷v产偷v自拍| 欧美一级免费观看| 国产精品一区二区你懂的| 欧美曰成人黄网| 美女视频黄频大全不卡视频在线播放| 亚洲视频导航| 亚洲图片一区二区| 视频在线99| 亚洲一区二区在线免费观看视频 | 色综合久久中文综合久久97| 亚洲成人免费观看| 视频一区不卡| 亚洲妇女屁股眼交7| 色大师av一区二区三区| 一区二区三区日韩在线观看| 免费日韩电影在线观看| 日韩美女精品在线| 久久超碰亚洲| 亚洲免费伊人电影| 欧美日本韩国在线| 亚洲一区二区在线免费看| 日韩偷拍一区二区| 亚洲成av人片观看| 在线观看国产一区| 人人狠狠综合久久亚洲| 色噜噜狠狠成人中文综合| 日本sm残虐另类| 欧美日韩在线综合| 国产在线一区观看| 欧美一区二区三区免费在线看 | 4438成人网| 国产99久久久国产精品潘金| 日韩欧美黄色影院| 99精品国产热久久91蜜凸| 久久久蜜桃精品| 国产精品一区二区三区精品| 亚洲欧洲精品一区二区精品久久久| 精品999在线观看| 亚洲欧美电影一区二区| 亚洲a∨一区二区三区| 日韩高清不卡一区| 欧美日韩一二三| 国产成人精品三级麻豆| 欧美精品一区二区三区一线天视频| 99re视频这里只有精品| 国产精品久久久久久久久免费相片| 久久99精品久久久久子伦 | 欧美自拍资源在线| 视频在线观看国产精品| 欧美日韩国产免费一区二区| 国产成人99久久亚洲综合精品| 久久综合视频网| 精品国产区在线| 亚洲一区二区三区小说| 在线观看视频91| 丁香另类激情小说| 日本一区二区成人| 日本在线视频一区| 另类成人小视频在线| 日韩一区二区三区三四区视频在线观看| 99久久精品国产麻豆演员表| 国产精品久久久久久久久久久免费看 | 久久久久久久久久久黄色| 狠狠色狠狠色综合人人| 午夜国产精品影院在线观看| 欧美久久久一区| 91香蕉视频在线| 亚洲精品国产精品乱码不99| 色老头久久综合| 成人午夜免费视频| 中文字幕亚洲在| 在线视频不卡国产| 成人一区二区三区在线观看| 国产精品久线观看视频| 一区在线电影| 国产·精品毛片| 自拍偷拍国产亚洲| 91久久精品一区二区二区| 成人免费av在线| 亚洲三级电影网站| 欧美午夜寂寞影院| 91传媒视频免费| 午夜一区二区三区视频| 日韩亚洲欧美综合| 精品一区在线播放| 麻豆精品视频在线| 国产夜色精品一区二区av| 天天爽天天狠久久久| 国产成人在线网站| 亚洲人快播电影网| 欧美性猛交xxxx黑人交| 99视频国产精品免费观看| 婷婷开心久久网| ww久久中文字幕| 亚洲精品一区二区三区四区五区 | 日韩国产成人精品| 久久噜噜亚洲综合| 亚洲精品免费在线看| 岛国一区二区在线观看| 亚洲精品久久7777| 91精品视频网| 欧美日韩免费精品| 国产黄色成人av| 亚洲激情在线激情| 欧美一区二区三区在线观看| 久久综合九色综合久99| 国产麻豆午夜三级精品| 亚洲欧洲精品一区二区三区| 欧美日韩高清一区| 九九九九九九精品| 国产乱人伦偷精品视频免下载| 日本一二三不卡| 欧美日韩一级视频| 欧美一区二区视频17c| 成人禁用看黄a在线| 五月天国产精品| 国产人伦精品一区二区|