參考網(wǎng)址
redis命令
php操作redis
首先確保已經(jīng)安裝redis 并且已經(jīng)啟動
確保PHP已經(jīng)安裝redis擴展
php -m | grep redis
GEOADD
GEODIST
GEORADIUS
GEORADIUSBYMEMBER
GEOHASH
命令: GEOADD key longitude latitude member [longitude latitude member …]
命令詳解 - 顧名思義這是一個添加命令 1.向一個geo類型的有序集合中添加數(shù)據(jù) 2.可以傳遞多個參數(shù) 同時添加 3.經(jīng)緯度限制 有效的經(jīng)度介于 -180 度至 180 度之間 有效的緯度介于 -85.05112878 度至 85.05112878 度之間 2.返回成功添加到鍵中的空間元素 不包含已經(jīng)存在但是更新的元素 注意: 1.必須按照x,y格式 經(jīng)度在前 緯度災(zāi)后
命令使用
- 首先打開客戶端 正確添加 # geoadd myplace 116.580799 39.929301 me 116.580691 39.929007 you 116.58101 39.928931 other 錯誤示范 # geoadd test 181 181 one
php中調(diào)用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); // 插入正確數(shù)據(jù) $successRes = $redis->geoAdd( "myplace", // 鍵值 116.580799, 39.929301, "me", // 第一個元素的經(jīng)緯度 以及對應(yīng)名稱 116.580691,39.929007, "you", 116.58101, 39.928931, "other" ); // 插入錯誤數(shù)據(jù) $faildRes = $redis->geoAdd( "test", 181, 181, "one" ); var_dump($successRes); var_dump($faildRes);GEOPOS 獲取指定元素的位置
命令:GEOPOS key member [member …]
命令詳解:
- 獲取位置 百度翻譯說pos可能是位置的縮寫 1.返回一個鍵中給定元素的位置 2.參數(shù)可以傳遞多個 3.返回參數(shù)每一項都由兩個元素組成 第一個元素為經(jīng)度 第二個元素為緯度 4.如果給定元素不存在 返回nil
命令使用
正確使用 # geopos myplace me you other 錯誤使用 獲取一個不存在元素 # geopos myplace one
PHP中使用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); // 獲取正確數(shù)據(jù) $successRes = $redis->geoPos( "myplace", // 鍵值 "me" // 元素名稱 ); // 獲取錯誤數(shù)據(jù) $faildRes = $redis->geoPos( "myplace", // 鍵值 "one" // 不存在的元素 ); var_dump($successRes); var_dump($faildRes);GEODIST 獲取兩個元素之間的距離
命令: GEODIST key member1 member2 [unit]
命令詳解 - 獲取兩個元素之間的距離 dist 距離 1.參數(shù)固定 只能計算兩個元素之間的距離 2.最后一個參數(shù) unit 代表單位 默認(rèn)為米(m) 有如下幾個參數(shù) m 表示單位為米。 km 表示單位為千米。 mi 表示單位為英里。 ft 表示單位為英尺 返回值:計算出的距離會以雙精度浮點數(shù)的形式被返回 如果給定的位置元素(任何一個)不存在, 那么命令返回空值 注意:該命令在計算距離時會假設(shè)地球為完美的球形 在極限情況下 這一假設(shè)最大會造成 0.5% 的誤差
命令使用
獲取兩個元素之間的距離 以米為單位 # geodist myplace me you m 錯誤使用 獲取一個不存在的元素 # geodist myplace me not m
PHP中使用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); // 獲取正確的數(shù)據(jù) $successRes = $redis->geoDist( "myplace", // 鍵值 "me", // 元素 "you", // 元素 "m" // 距離單位 ); // 獲取錯誤的數(shù)據(jù) $faildRes = $redis->geoDist( "myplace", // 鍵值 "me", // 元素 "not" // 不存在的元素 ); var_dump($successRes); var_dump($faildRes);GEORADIUS 獲取所有不超過指定經(jīng)緯度特定距離的所有元素
命令:GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
命令詳解: - 獲取指定經(jīng)緯度內(nèi)一個半徑的元素信息 radius半徑 1.必須指定經(jīng)緯度 經(jīng)度在前 緯度在后 2.可以指定范圍 范圍單位如下 m 表示單位為米 km 表示單位為千米 mi 表示單位為英里 ft 表示單位為英尺 3.獲取與給定經(jīng)緯度之間的距離 需要參數(shù) WITHDIST 單位與給定的距離單位相同 4.獲取返回元素的經(jīng)緯度 需要參數(shù) WITHCOORD 5.可以使用距離進(jìn)行排序 ASC 從近到遠(yuǎn) DESC 從遠(yuǎn)到近 6.返回的數(shù)量 返回值:返回一個數(shù)組
命令使用
獲取一個元素中距離給定坐標(biāo)特定距離的所有元素 顯示距離 顯示坐標(biāo) 按照從近到遠(yuǎn) 顯示3條 # georadius myplace 116.578486 39.927244 200 km WITHCOORD WITHDIST ASC COUNT 3
PHP中使用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); $options[] = "WITHDIST"; // 距離 $options[] = "WITHCOORD"; // 經(jīng)緯度 $options[] = "ASC"; // 排序 ASC|DESC $options["COUNT"] = 3; // 條數(shù) // 獲取正確的數(shù)據(jù) $successRes = $redis->geoRadius( "myplace", // 鍵值 "116.578486", // 經(jīng)度 "39.927244", // 緯度 "200", // 距離 "km", // 距離單位 $options // 其他可選參數(shù) ); var_dump($successRes);GEORADIUSBYMEMBER 獲取所有不超過指定元素特定距離的所有元素
命令:GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
命令詳解 - 根據(jù)鍵值中的一個元素獲取指定距離內(nèi)的元素 相當(dāng)與GEORADIUS命令的另一版本 1.需要指定元素 而不是經(jīng)緯度 注意:元素必須是鍵值中已經(jīng)存在的元素 返回值也會包含選定的元素 返回值:數(shù)組
命令使用
獲取一個元素指定范圍內(nèi)的元素 選定元素 me 距離 200 單位 m 返回距離 經(jīng)緯度 從近到遠(yuǎn) 3條 # georadiusbymember myplace me 200 m WITHCOORD WITHDIST ASC COUNT 3
PHP中使用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); $options[] = "WITHDIST"; // 距離 $options[] = "WITHCOORD"; // 經(jīng)緯度 $options[] = "ASC"; // 排序 ASC|DESC $options["COUNT"] = 3; // 條數(shù) // 獲取正確的數(shù)據(jù) $successRes = $redis->geoRadiusByMember( "myplace", // 鍵值 "me", // 元素 "200", // 距離 "km", // 距離單位 $options // 其他可選參數(shù) ); var_dump($successRes);GEOHASH 獲取一個元素的geo hash值
命令:GEOHASH key member [member …]
命令詳解 - 獲取geo的hash值 1.可以同時獲取多個元素的hash值 注意:返回的數(shù)據(jù)需要自己對應(yīng) 返回值:一個數(shù)組 數(shù)組的每個項都是一個 geohash
命令使用
獲取geohash # geohash myplace me you other
PHP使用
// 實例化redis對象 $redis = new Redis(); // 鏈接redis 本機host地址 默認(rèn)端口號 $redis->connect("127.0.0.1", 6379); // 獲取正確的數(shù)據(jù) $successRes = $redis->geoHash( "myplace", // 鍵值 "me", // 元素 "you", // 元素 "other" // 元素 ); var_dump($successRes);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31690.html
閱讀 1826·2021-11-23 09:51
閱讀 947·2021-10-08 10:05
閱讀 3431·2021-09-26 09:55
閱讀 1039·2021-09-22 15:21
閱讀 1633·2021-09-09 09:33
閱讀 1265·2019-08-30 15:56
閱讀 1285·2019-08-30 15:55
閱讀 969·2019-08-30 13:19