新聞中心
Redis距離運(yùn)算用于計(jì)算兩個(gè)點(diǎn)之間的距離,其中一個(gè)點(diǎn)的經(jīng)緯度坐標(biāo)和另一個(gè)點(diǎn)的經(jīng)緯度坐標(biāo)組成一個(gè)二元組。Redis是一款流行的鍵值存儲(chǔ)系統(tǒng),它可以用于存儲(chǔ)和檢索二元組。本文將介紹如何使用Redis實(shí)現(xiàn)距離運(yùn)算。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)景東免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
我們需要存儲(chǔ)每一個(gè)點(diǎn)的經(jīng)緯度坐標(biāo)到Redis數(shù)據(jù)庫中,為此我們需要一個(gè)存儲(chǔ)數(shù)據(jù)的鍵。比如:
var KEY="location";
redis.hSet(key, 'point1', '36.088866, 117.496322');//坐標(biāo)間使用“,”號(hào)隔開
redis.hSet(key, 'point2', '39.003352, 112.091867');
接下來,我們使用“GEOADD”命令將坐標(biāo)寫入到Redis的GEO空間數(shù)據(jù)中,其語法如下:
GEOADD key longitude latitude member
使用以下語句將前述存儲(chǔ)的經(jīng)緯度坐標(biāo)添加到GEO中:
redis.geoAdd(key, Bdu's Location[117.496322, 36.088866], 'point1');
redis.geoAdd(key, Bdu's Location[112.091867, 38.003352], 'point2');
使用“GEODIST”命令計(jì)算兩個(gè)點(diǎn)之間的距離,該命令接受兩個(gè)參數(shù):起始點(diǎn)和目標(biāo)點(diǎn),其語法如下:
GEODIST key member1 member2 [unit]
使用以下語句計(jì)算point1和point2之間的距離:
const unit = 'm';
var dist = redis.geoDist(key, 'point1', 'point2', unit);
// dist的結(jié)果是用米數(shù)(m)表示的距離,可以使用多種單位來表示距離,比如km或者mi
以上就是使用Redis實(shí)現(xiàn)距離運(yùn)算的步驟。我們可以用更簡(jiǎn)便的方式實(shí)現(xiàn)距離運(yùn)算,而不需要使用GEO命令,我們可以通過處理經(jīng)緯度坐標(biāo),計(jì)算出兩點(diǎn)間的距離。
Redis是一種計(jì)算距離運(yùn)算的有效工具,它可以存儲(chǔ)并處理經(jīng)緯度坐標(biāo),并提供了一組GEO命令用于計(jì)算任何兩個(gè)點(diǎn)之間的距離。它的性能表現(xiàn)也非常出色,可以為我們的應(yīng)用程序提供更加優(yōu)秀的服務(wù)。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁題目:用Redis實(shí)現(xiàn)距離運(yùn)算(redis距離運(yùn)算)
文章起源:http://m.fisionsoft.com.cn/article/ccsjpci.html


咨詢
建站咨詢
