新聞中心
近年來,Redis在大數(shù)據(jù)處理領(lǐng)域中獲得了廣泛的應(yīng)用,Jonathan Huang,Uber 中國研發(fā)中心負責(zé)人,也深入地研究了Redis,開發(fā)出了其獨特的高效數(shù)據(jù)處理技巧。

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為江油企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、做網(wǎng)站,江油網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
Huang就以Uber的實際問題來介紹:“Uber的服務(wù)主要是送客,客戶們可以通過手機APP向Uber發(fā)送送客請求,手機會接收到以司機和他們最近一次位置為基礎(chǔ)列出的乘客請求列表推送消息,然后,系統(tǒng)會花費較長的時間來計算“離該司機最近的客戶”,并顯示它們”。
為了解決這個問題,Huang利用Redis,配合GEO Hashing,來開發(fā)了一個高性能實時地理位置可視化系統(tǒng)。該系統(tǒng)利用Redis緩存來存儲司機位置,另外,Geo Hashing也用于保存位置。該系統(tǒng)可以根據(jù)司機所在的坐標及時地檢索出最近的供乘客用的實時距離,結(jié)合Geo Hash算法,將數(shù)據(jù)存儲在Redis集群中,有效將檢索時間由幾十秒縮短到1ms左右,大大提高了系統(tǒng)性能,且可實現(xiàn)可靠性與可伸縮性。
實際演示代碼如下:
# 設(shè)置司機的位置
Location.set(driver_id, lon, lat)
# 獲取司機周邊最近的乘客
# 根據(jù)司機的位置和限定的距離搜索
nearby_passengers = Location.nearby(lon, lat, DEFAULT_DISTANCE_LIMIT)
#代碼可以采用依賴于Geo_Hash.py的Python腳本來構(gòu)造Redis緩存空間
Redis.pipeline()
.geoadd(location, lon, lat, user_id)
.zrevrangebyscore(location, max_distance, min_distance)
.execute()
以上代碼就實現(xiàn)了從高效率的地理位置檢索司機信息的功能。除此之外,Huang針對Redis還進行了一些調(diào)優(yōu),其中一個技巧就是通過設(shè)置checksum來檢查redis運行正常,另外也考慮到特定節(jié)點出了故障后及時重啟它。
通過Huang的技術(shù),我們可以看到,采用Redis結(jié)合Geo Hashing,便能有效地提高地理位置方面的檢索,而Redis的調(diào)優(yōu)也能提高系統(tǒng)的魯棒性和可靠性,實現(xiàn)更高效的數(shù)據(jù)處理。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計算機網(wǎng)絡(luò)、設(shè)計、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
網(wǎng)頁題目:Redis實戰(zhàn):黃健宏的高效數(shù)據(jù)處理技巧(Redis實戰(zhàn)黃健宏)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/djojjes.html


咨詢
建站咨詢
