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

使用Redis和Python構建一個共享單車的應用程序

開發 后端 其他數據庫 Redis
學習如何使用 Redis 和 Python 構建一個位置感知的應用程序。我組合了可用的公開的共享單車數據、Python 編程語言以及開源的 Redis 內存數據結構服務,用來索引和查詢地理空間數據。

[[249389]]

學習如何使用 Redis 和 Python 構建一個位置感知的應用程序。

我經常出差。但不是一個汽車狂熱分子,所以當我有空閑時,我更喜歡在城市中散步或者騎單車。我參觀過的許多城市都有共享單車系統,你可以租個單車用幾個小時。大多數系統都有一個應用程序來幫助用戶定位和租用他們的單車,但對于像我這樣的用戶來說,在一個地方可以獲得可租賃的城市中所有單車的信息會更有幫助。

為了解決這個問題并且展示開源的強大還有為 Web 應用程序添加位置感知的功能,我組合了可用的公開的共享單車數據、Python 編程語言以及開源的 Redis 內存數據結構服務,用來索引和查詢地理空間數據。

由此誕生的共享單車應用程序包含來自很多不同的共享系統的數據,包括紐約市的 Citi Bike 共享單車系統(LCTT 譯注:Citi Bike 是紐約市的一個私營公共單車系統。在 2013 年 5 月 27 日正式營運,是美國***的公共單車系統。Citi Bike 的名稱有兩層意思。Citi 是計劃贊助商花旗銀行(CitiBank)的名字。同時,Citi 和英文中“城市(city)”一詞的讀音相同)。它利用了花旗單車系統提供的 通用共享單車數據流General Bikeshare Feed,并利用其數據演示了一些使用 Redis 地理空間數據索引的功能。 花旗單車數據可按照 花旗單車數據許可協議 提供。

通用共享單車數據流規范

通用共享單車數據流規范General Bikeshare Feed Specification(GBFS)是由 北美共享單車協會 開發的 開放數據規范,旨在使地圖程序和運輸程序更容易的將共享單車系統添加到對應平臺中。 目前世界上有 60 多個不同的共享系統使用該規范。

Feed 流由幾個簡單的 JSON 數據文件組成,其中包含系統狀態的信息。 Feed 流以一個*** JSON 文件開頭,其引用了子數據流的 URL:

  1. {
  2. "data": {
  3. "en": {
  4. "feeds": [
  5. {
  6. "name": "system_information",
  7. "url": "https://gbfs.citibikenyc.com/gbfs/en/system_information.json"
  8. },
  9. {
  10. "name": "station_information",
  11. "url": "https://gbfs.citibikenyc.com/gbfs/en/station_information.json"
  12. },
  13. . . .
  14. ]
  15. }
  16. },
  17. "last_updated": 1506370010,
  18. "ttl": 10
  19. }

***步是使用 system_informationstation_information 的數據將共享單車站的信息加載到 Redis 中。

system_information 提供系統 ID,系統 ID 是一個簡短編碼,可用于為 Redis 鍵名創建命名空間。 GBFS 規范沒有指定系統 ID 的格式,但確保它是全局唯一的。許多共享單車數據流使用諸如“coastbikeshare”,“boisegreenbike” 或者 “topekametro_bikes” 這樣的短名稱作為系統 ID。其他的使用常見的有地理縮寫,例如 NYC 或者 BA,并且使用通用唯一標識符(UUID)。 這個共享單車應用程序使用該標識符作為前綴來為指定系統構造唯一鍵。

station_information 數據流提供組成整個系統的共享單車站的靜態信息。車站由具有多個字段的 JSON 對象表示。車站對象中有幾個必填字段,用于提供物理單車站的 ID、名稱和位置。還有幾個可選字段提供有用的信息,例如最近的十字路口、可接受的付款方式。這是共享單車應用程序這一部分的主要信息來源。

建立數據庫

我編寫了一個示例應用程序 loadstationdata.py,它模仿后端進程中從外部源加載數據時會發生什么。

查找共享單車站

GitHub 上 GBFS 倉庫中的 systems.csv 文件開始加載共享單車數據。

倉庫中的 systems.csv 文件提供已注冊的共享單車系統及可用的 GBFS 數據流的發現 URLdiscovery URL。 這個發現 URL 是處理共享單車信息的起點。

load_station_data 程序獲取系統文件中找到的每個發現 URL,并使用它來查找兩個子數據流的 URL:系統信息和車站信息。 系統信息提供提供了一條關鍵信息:系統的唯一 ID。 (注意:系統 ID 也在 systems.csv 文件中提供,但文件中的某些標識符與數據流中的標識符不匹配,因此我總是從數據流中獲取標識符。)系統上的詳細信息,比如共享單車 URL、電話號碼和電子郵件, 可以在程序的后續版本中添加,因此使用 ${system_id}:system_info 這個鍵名將數據存儲在 Redis 中。

載入車站數據

車站信息提供系統中每個車站的數據,包括該系統的位置。load_station_data 程序遍歷車站數據流中的每個車站,并使用 ${system_id}:station:${station_id} 形式的鍵名將每個車站的數據存儲到 Redis 中。 使用 GEOADD 命令將每個車站的位置添加到共享單車的地理空間索引中。

更新數據

在后續運行中,我不希望代碼從 Redis 中刪除所有 Feed 數據并將其重新加載到空的 Redis 數據庫中,因此我仔細考慮了如何處理數據的原地更新。

代碼首先加載所有需要系統在內存中處理的共享單車站的信息數據集。 當加載了一個車站的信息時,該站就會按照 Redis 鍵名從內存中的車站集合中刪除。 加載完所有車站數據后,我們就剩下一個包含該系統所有必須刪除的車站數據的集合。

程序迭代處理該數據集,并創建一個事務刪除車站的信息,從地理空間索引中刪除該車站的鍵名,并從系統的車站列表中刪除該車站。

代碼重點

示例代碼中有一些值得注意的地方。 首先,使用 GEOADD 命令將所有數據項添加到地理空間索引中,而使用 ZREM 命令將其刪除。 由于地理空間類型的底層實現使用了有序集合,因此需要使用 ZREM 刪除數據項。 需要注意的是:為簡單起見,示例代碼演示了如何在單個 Redis 節點工作; 為了在集群環境中運行,需要重新構建事務塊。

如果你使用的是 Redis 4.0(或更高版本),則可以在代碼中使用 DELETEHMSET 命令。 Redis 4.0 提供 UNLINK 命令作為 DELETE 命令的異步版本的替代。 UNLINK 命令將從鍵空間中刪除鍵,但它會在另外的線程中回收內存。 在 Redis 4.0 中 HMSET 命令已經被棄用了而且 HSET 命令現在接收可變參數(即,它接受的參數個數不定)。

通知客戶端

處理結束時,會向依賴我們數據的客戶端發送通知。 使用 Redis 發布/訂閱機制,通知將通過 geobike:station_changed 通道和系統 ID 一起發出。

數據模型

在 Redis 中構建數據時,最重要的考慮因素是如何查詢信息。 共享單車程序需要支持的兩個主要查詢是:

  • 找到我們附近的車站
  • 顯示車站相關的信息

Redis 提供了兩種主要數據類型用于存儲數據:哈希和有序集。 哈希類型很好地映射到表示車站的 JSON 對象;由于 Redis 哈希不使用固定的數據結構,因此它們可用于存儲可變的車站信息。

當然,在地理位置上尋找站點需要地理空間索引來搜索相對于某些坐標的站點。 Redis 提供了幾個使用有序集數據結構構建地理空間索引的命令。

我們使用 ${system_id}:station:${station_id} 這種格式的鍵名存儲車站相關的信息,使用 ${system_id}:stations:location 這種格式的鍵名查找車站的地理空間索引。

獲取用戶位置

構建應用程序的下一步是確定用戶的當前位置。 大多數應用程序通過操作系統提供的內置服務來實現此目的。 操作系統可以基于設備內置的 GPS 硬件為應用程序提供定位,或者從設備的可用 WiFi 網絡提供近似的定位。

查找車站

找到用戶的位置后,下一步是找到附近的共享單車站。 Redis 的地理空間功能可以返回用戶當前坐標在給定距離內的所有車站信息。 以下是使用 Redis 命令行界面的示例。

想象一下,我正在紐約市第五大道的蘋果零售店,我想要向市中心方向前往位于西 37 街的 MOOD 布料店,與我的好友 Swatch 相遇。 我可以坐出租車或地鐵,但我更喜歡騎單車。 附近有沒有我可以使用的單車共享站呢?

蘋果零售店位于 40.76384,-73.97297。 根據地圖顯示,在零售店 500 英尺半徑范圍內(地圖上方的藍色)有兩個單車站,分別是陸軍廣場中央公園南單車站和東 58 街麥迪遜單車站。

我可以使用 Redis 的 GEORADIUS 命令查詢 500 英尺半徑范圍內的車站的 NYC 系統索引:

  1. 127.0.0.1:6379> GEORADIUS NYC:stations:location -73.97297 40.76384 500 ft
  2. 1) "NYC:station:3457"
  3. 2) "NYC:station:281"

Redis 使用地理空間索引中的元素作為特定車站的元數據的鍵名,返回在該半徑內找到的兩個共享單車站。 下一步是查找兩個站的名稱:

  1. 127.0.0.1:6379> hget NYC:station:281 name
  2. "Grand Army Plaza & Central Park S"
  3.  
  4. 127.0.0.1:6379> hget NYC:station:3457 name
  5. "E 58 St & Madison Ave"

這些鍵名對應于上面地圖上標識的車站。 如果需要,可以在 GEORADIUS 命令中添加更多標志來獲取元素列表,每個元素的坐標以及它們與當前點的距離:

  1. 127.0.0.1:6379> GEORADIUS NYC:stations:location -73.97297 40.76384 500 ft WITHDIST WITHCOORD ASC
  2. 1) 1) "NYC:station:281"
  3. 2) "289.1995"
  4. 3) 1) "-73.97371262311935425"
  5. 2) "40.76439830559216659"
  6. 2) 1) "NYC:station:3457"
  7. 2) "383.1782"
  8. 3) 1) "-73.97209256887435913"
  9. 2) "40.76302702144496237"

查找與這些鍵名關聯的名稱會生成一個我可以從中選擇的車站的有序列表。 Redis 不提供方向和路線的功能,因此我使用設備操作系統的路線功能繪制從當前位置到所選單車站的路線。

GEORADIUS 函數可以很輕松的在你喜歡的開發框架的 API 里實現,這樣就可以向應用程序添加位置功能了。

其他的查詢命令

除了 GEORADIUS 命令外,Redis 還提供了另外三個用于查詢索引數據的命令:GEOPOSGEODISTGEORADIUSBYMEMBER

GEOPOS 命令可以為 地理哈希geohash 中的給定元素提供坐標(LCTT 譯注:geohash 是一種將二維的經緯度編碼為一位的字符串的一種算法,常用于基于距離的查找算法和推薦算法)。 例如,如果我知道西 38 街 8 號有一個共享單車站,ID 是 523,那么該站的元素名稱是 NYC:station:523。 使用 Redis,我可以找到該站的經度和緯度:

  1. 127.0.0.1:6379> geopos NYC:stations:location NYC:station:523
  2. 1) 1) "-73.99138301610946655"
  3. 2) "40.75466497634030105"

GEODIST 命令提供兩個索引元素之間的距離。 如果我想找到陸軍廣場中央公園南單車站與東 58 街麥迪遜單車站之間的距離,我會使用以下命令:

  1. 127.0.0.1:6379> GEODIST NYC:stations:location NYC:station:281 NYC:station:3457 ft
  2. "671.4900"

***,GEORADIUSBYMEMBER 命令與 GEORADIUS 命令類似,但該命令不是采用一組坐標,而是采用索引的另一個成員的名稱,并返回以該成員為中心的給定半徑內的所有成員。 要查找陸軍廣場中央公園南單車站 1000 英尺范圍內的所有車站,請輸入以下內容:

  1. 127.0.0.1:6379> GEORADIUSBYMEMBER NYC:stations:location NYC:station:281 1000 ft WITHDIST
  2. 1) 1) "NYC:station:281"
  3. 2) "0.0000"
  4. 2) 1) "NYC:station:3132"
  5. 2) "793.4223"
  6. 3) 1) "NYC:station:2006"
  7. 2) "911.9752"
  8. 4) 1) "NYC:station:3136"
  9. 2) "940.3399"
  10. 5) 1) "NYC:station:3457"
  11. 2) "671.4900"
雖然此示例側重于使用 Python 和 Redis 來解析數據并構建共享單車系統位置的索引,但可以很容易地衍生為定位餐館、公共交通或者是開發人員希望幫助用戶找到的任何其他類型的場所。
責任編輯:龐桂玉 來源: Linux中國
相關推薦

2023-09-21 08:00:00

ChatGPT編程工具

2021-07-14 17:39:46

ReactRails API前端組件

2025-07-24 09:08:31

2010-07-12 10:11:27

ibmdwWeb

2021-10-29 16:18:14

Streamlit Python

2024-02-26 00:01:01

RedisGolang應用程序

2011-05-11 10:58:39

iOS

2010-01-08 12:14:44

ibmdwAndroid

2021-02-17 11:05:34

PythonPyQt代碼

2024-01-09 18:00:22

Rust后端slvelte

2024-06-07 08:25:16

2024-12-24 08:12:59

2012-03-30 15:54:43

ibmdw

2022-02-18 08:43:19

Spring Boo應用程序RabbitMQ

2009-01-03 14:25:10

ibmdwWeb

2020-10-11 20:54:39

Python開發Docker

2019-05-27 13:50:35

多云架構企業多云集成云計算

2021-04-03 12:31:48

Python開發數據科學

2010-06-13 09:22:37

jQuery

2011-03-14 15:10:10

AzureFacebook
點贊
收藏

51CTO技術棧公眾號

麻豆亚洲av成人无码久久精品| 午夜啪啪小视频| 青青草在线免费观看| 久久久精品午夜少妇| 色视频www在线播放国产成人| a级大片免费看| 在线观看特色大片免费视频| 国产精品网曝门| 97超碰人人看人人| 亚洲第一网站在线观看| 亚洲最新av| 亚洲女人天堂网| 国产一区二区在线观看免费视频| 国产区美女在线| 国产午夜精品一区二区三区四区| 成人激情视频网| 男人日女人网站| 中文无码久久精品| 亚洲人在线观看| 夜夜爽久久精品91| 我爱我色成人网| 亚洲在线一区二区三区| 亚洲激情图片| 青梅竹马是消防员在线| 国产精品亚洲一区二区三区妖精| 国产精品v片在线观看不卡| 免费无遮挡无码永久在线观看视频 | 成人精品高清在线| 国产精品青青在线观看爽香蕉| 免费在线观看黄色av| 97精品视频| 亚洲男女性事视频| 国产女人18毛片水真多18| 欧美videos粗暴| 色欧美片视频在线观看在线视频| 日本久久久网站| 黄网站免费在线播放| 久久精品男人的天堂| 国产精品久久久久av福利动漫| 国产在成人精品线拍偷自揄拍| 久久精品在线| 69精品小视频| 日韩av在线天堂| 欧美久久一级| 欧美精品在线免费| www.99re7| 亚洲一区二区三区无吗| 色妞欧美日韩在线| 美女100%露胸无遮挡| 亚洲va久久| 日韩av中文字幕在线播放| 被黑人猛躁10次高潮视频| 国产精品蜜月aⅴ在线| 91国偷自产一区二区开放时间| 玩弄中年熟妇正在播放| 岛国在线视频网站| 午夜激情一区二区| 国自产拍偷拍精品啪啪一区二区| 9999精品成人免费毛片在线看| 亚洲综合色自拍一区| 国产 欧美 日韩 一区| 欧美bbbxxxxx| 亚洲宅男天堂在线观看无病毒| 国产91在线亚洲| 里番在线播放| 欧美日韩午夜剧场| 男人天堂网视频| 国产成人精品亚洲日本在线观看| 色狠狠综合天天综合综合| 日本熟妇人妻中出| 懂色aⅴ精品一区二区三区| 欧美日韩精品系列| 色婷婷.com| 一区二区三区在线免费看| 欧美大片在线观看一区二区| 在线观看成人动漫| 久久av免费| 中文字幕亚洲欧美| 精品人妻伦九区久久aaa片| 午夜久久影院| 91精品国产91久久久久福利| 在线精品免费视| 麻豆中文一区二区| 3d动漫啪啪精品一区二区免费 | 欧美xxxooo| 午夜精品剧场| 日本91av在线播放| 国产一区二区网站| 成人av第一页| 日韩激情久久| 免费男女羞羞的视频网站在线观看| 午夜久久久久久久久久一区二区| 可以免费观看av毛片| 欧美综合影院| 日韩成人av在线| 国产黄色片在线| 欧美涩涩网站| 国产精品爱久久久久久久| 国产精品国产三级国产aⅴ| 成人性色生活片免费看爆迷你毛片| 欧美日本韩国在线| h视频在线免费观看| 动漫精品一区二区| 中文字幕55页| 精品国产精品国产偷麻豆| 中文字幕久久亚洲| 国产在线观看成人| 久久爱另类一区二区小说| 国产精品久久久久久免费观看 | 色一情一乱一伦| 国模一区二区三区白浆| 欧美日韩一区二区三区在线视频| а√中文在线8| 色婷婷av一区二区三区gif| 国产伦理在线观看| 久久免费精品视频在这里| 97在线观看免费| 99在线精品视频免费观看20| 国产女人aaa级久久久级| aa视频在线播放| 99久久99九九99九九九| 亚洲人成77777在线观看网| 免费中文字幕在线观看| 久草在线在线精品观看| 日本精品视频一区| 成年人在线网站| 日韩免费一区二区三区在线播放| 免费一级suv好看的国产网站| 国产模特精品视频久久久久| 国产精品国产一区二区| 国产视频一区二区| 欧美亚洲精品一区| 成人免费毛片糖心| 国产日韩欧美高清免费| 国产区一区二区| 先锋影音在线资源站91| 91精品国产一区二区| 国产极品视频在线观看| 视频一区国产视频| 欧美亚洲爱爱另类综合| 午夜裸体女人视频网站在线观看| 亚洲爱爱爱爱爱| 久久精品人妻一区二区三区| 国产激情视频一区二区三区欧美| 夜夜爽99久久国产综合精品女不卡 | 日韩久久精品电影| 日韩精品在线免费看| 成人动漫一区二区三区| 中文精品无码中文字幕无码专区| 婷婷综合国产| 欧美贵妇videos办公室| 亚洲AV午夜精品| 亚洲一区二区三区小说| 国产性猛交96| 在线精品亚洲| 国产女人水真多18毛片18精品 | 国产精东传媒成人av电影| 欧美人在线视频| 亚洲大尺度网站| 亚洲一区二区在线观看视频| 激情av中文字幕| 国内精品福利| 国产精品区一区| 僵尸再翻生在线观看| 日韩国产欧美区| 日本高清不卡码| 日本一区二区三区免费乱视频| 三级在线免费看| 91影院成人| 91中文字幕一区| 欧美激情成人动漫| 精品视频在线播放免| 一级黄色在线观看| 中文字幕日本乱码精品影院| 捷克做爰xxxⅹ性视频| 国内一区二区三区| 久久国产精品久久| 国产精品美女午夜爽爽| 色综合久综合久久综合久鬼88| 人妻精品一区一区三区蜜桃91| 疯狂做受xxxx高潮欧美日本| 国产伦理片在线观看| 国产一区二区在线观看免费| 久久99久久99精品| 精品国产中文字幕第一页| 成人免费看黄网站| 麻豆视频在线看| 色综合伊人色综合网| 亚洲精品久久久久avwww潮水| 精品久久久久久久久久久久| 亚洲一区二区自偷自拍| 国产精品一区二区三区99| 国产中文字幕在线免费观看| 国产欧美日韩影院| 亚洲一区二区在线| 少妇视频在线观看| 久久精彩免费视频| 欧洲毛片在线| 欧美一区二区三区四区久久| 91精品国产综合久久久蜜臀九色| 国产精品家庭影院| 亚洲综合自拍网| 九色综合狠狠综合久久| 少妇高潮毛片色欲ava片| 久久精品av| 久久久久久久有限公司| 日韩三级久久| 国产精品麻豆va在线播放| heyzo高清国产精品| 少妇精69xxtheporn| 天堂av手机版| 日韩午夜av一区| 在线播放一级片| 五月婷婷综合在线| 欧洲猛交xxxx乱大交3| 国产欧美一区二区精品仙草咪| 国产精品亚洲一区二区无码| 久久99精品国产麻豆婷婷洗澡| 亚洲熟妇av日韩熟妇在线| 亚洲视频电影在线| 午夜精品福利一区二区| 欧美一级二级三级视频| 91免费版网站在线观看| 久久人体av| 国产成+人+综合+亚洲欧洲| 波多野结衣精品| 久久成人在线视频| 亚洲精品传媒| 亚洲天堂一区二区三区| 日韩在线观看视频一区| 欧美本精品男人aⅴ天堂| 国产又粗又大又黄| 欧美日韩在线播放| 国产精品熟女视频| 色哟哟一区二区三区| 日韩成人在线免费视频| 亚洲一区视频在线观看视频| 天天干中文字幕| 亚洲视频在线一区观看| 国精产品视频一二二区| 国产精品青草综合久久久久99| 右手影院亚洲欧美| 91在线视频播放地址| 国产黑丝一区二区| av一区二区三区在线| xxxx黄色片| 99热精品一区二区| 香港三级日本三级| 91在线视频网址| 不卡一区二区在线观看| 久久免费偷拍视频| av黄色在线免费观看| 久久久影视传媒| 人妻av无码一区二区三区| 国产日韩欧美精品一区| 国产成人无码精品久久二区三| 91色婷婷久久久久合中文| 亚洲最大成人网站| 国产欧美日韩麻豆91| 日本欧美一区二区三区不卡视频| 国产精品色婷婷| 午夜激情福利网| 亚洲成人1区2区| 久久免费激情视频| 在线一区二区三区四区五区| www.亚洲激情| 欧美日韩高清一区二区不卡| 91资源在线视频| 欧美刺激脚交jootjob| 国产综合视频在线| 亚洲欧美国产精品va在线观看| 九色网友自拍视频手机在线| 最近2019年好看中文字幕视频| 日本www在线| 欧美大荫蒂xxx| 中文字幕在线视频久| 国产精品日韩欧美大师| 成人黄色91| 国产亚洲精品自在久久| 国产成人精品三级高清久久91| 一区二区视频在线播放| 韩国在线视频一区| 色一情一乱一伦一区二区三区日本| 看国产成人h片视频| 精品久久久久久无码人妻| 久久影院电视剧免费观看| 成人做爰视频网站| 亚洲福利一二三区| 亚洲天堂国产精品| 精品国产乱码久久久久久免费 | 亚洲日本aⅴ片在线观看香蕉| 欧美三级理伦电影| 97在线视频免费看| 巨胸喷奶水www久久久免费动漫| 97se视频在线观看| 中文有码一区| 三上悠亚免费在线观看| 欧美在线综合| 制服下的诱惑暮生| 国产日韩在线不卡| 精品肉丝脚一区二区三区| 欧美专区在线观看一区| 亚洲精品国产精品乱码不卡| 在线日韩中文字幕| 爱看av在线| 成人免费激情视频| av一区二区在线播放| 99热久久这里只有精品| 欧美a级理论片| 亚洲制服丝袜在线播放| 亚洲天堂久久久久久久| 久久久久久久久久久影院| 日韩免费看网站| 尤物视频在线免费观看| 欧美在线观看网址综合| 香蕉大人久久国产成人av| 亚洲午夜久久久影院伊人| 免费欧美在线| 天堂在线精品视频| 国产精品蜜臀av| 亚洲s码欧洲m码国产av| 亚洲精品720p| 视频在线观看入口黄最新永久免费国产 | 久久一区二区三区欧美亚洲| 午夜视频一区| 国产在线观看中文字幕| 国产精品美日韩| 嫩草影院一区二区三区| 亚洲激情在线观看| 黑人极品ⅴideos精品欧美棵| 国产综合在线观看视频| 欧美日韩在线二区| 激情综合网婷婷| 99久久婷婷国产精品综合| 久久中文字幕无码| 日韩欧美成人激情| 高潮毛片在线观看| 91在线国产电影| 午夜av一区| 天天色天天综合网| 1区2区3区欧美| 亚洲天堂视频在线| 中文字幕国产亚洲2019| 国模视频一区| 亚洲.欧美.日本.国产综合在线| 性色av一区二区怡红| 欧美性xxxx图片| 欧美日韩一二三四五区| 日韩午夜影院| 日本免费一区二区三区视频观看| 亚洲婷婷丁香| 免费观看成人在线视频| 中文欧美字幕免费| 伊人久久亚洲综合| 在线亚洲午夜片av大片| 国产资源一区| 看全色黄大色大片| 国产很黄免费观看久久| 久久国产精品二区| 亚洲国产精品久久久久| 欧美激情护士| 日本一区二区三区四区在线观看 | 国产最新精品视频| 欧美一级色片| 国产精品久久久久9999小说| 中文字幕二三区不卡| 999av视频| 91国产美女视频| 精品国产日韩欧美| 五月天开心婷婷| 亚洲国产欧美在线| 免费在线黄色网址| 国产男人精品视频| 欧美 亚欧 日韩视频在线| 白嫩情侣偷拍呻吟刺激| 欧美性猛交xxxx偷拍洗澡| 触手亚洲一区二区三区| 亚洲va男人天堂| 99热这里只有精品8| 1024手机在线观看你懂的| 91精品国产欧美一区二区| 国产v日韩v欧美v| 亚洲国产成人不卡| 国产aⅴ综合色| 国产性生活视频| 久久成人精品电影| 一道在线中文一区二区三区| 一级片视频免费观看| 亚洲综合一区二区三区| 国产高清美女一级毛片久久| 亚洲free性xxxx护士白浆| 9国产精品视频| 极品美妇后花庭翘臀娇吟小说| 精品日韩在线观看| 澳门av一区二区三区| 日韩免费在线观看av| 中文av一区二区| 好吊视频一二三区| 国产精品丝袜一区二区三区| 在线日韩电影|