ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีเก็บองค์ประกอบของค่าเชิงพื้นที่ที่คีย์ ซึ่งอยู่ภายใต้พื้นที่เฉพาะ สำหรับสิ่งนี้ เราจะใช้ Redis GEORADIUSBYMEMBER คำสั่ง
คำสั่ง GEORADIUSBYMEMBER
คำสั่งนี้ใช้เพื่อส่งคืนสมาชิกของค่า geospatial อย่างน้อยหนึ่งรายการ ( Sorted Set ) ที่จัดเก็บไว้ที่คีย์ ซึ่งอยู่ภายในเส้นขอบของพื้นที่ที่คำนวณโดยใช้ลองจิจูด ค่าละติจูดของอาร์กิวเมนต์ที่ระบุและรัศมีของสมาชิกที่ระบุ พื้นที่นี้คำนวณโดยใช้ลองจิจูดของสมาชิกที่ระบุ ค่าละติจูดเป็นตำแหน่งศูนย์กลางของวงกลมและรัศมีในหน่วยที่ระบุเป็นรัศมีของวงกลม
รัศมีถูกกำหนดโดยใช้หน่วยใดหน่วยหนึ่งต่อไปนี้ :-
- m สำหรับมิเตอร์ ( ค่าเริ่มต้น )
- km สำหรับกิโลเมตร
- mi เป็นไมล์
- ft สำหรับเท้า
อาร์กิวเมนต์ที่ไม่บังคับ
คำสั่ง Redis GEORADIUSBYMEMBER ใช้อาร์กิวเมนต์ที่เป็นทางเลือกต่อไปนี้ :-
- WITHDIST :- ส่งกลับระยะทางขององค์ประกอบที่ส่งคืนจากจุดศูนย์กลางของวงกลม หน่วยของระยะทางเหมือนกับหน่วยของอาร์กิวเมนต์รัศมี
- WITHCOORD :- ส่งกลับเส้นแวง พิกัดละติจูดขององค์ประกอบที่ส่งคืนทั้งหมด
- WITHHASH :- ส่งคืนสตริง Geohash ดิบ (จำนวนเต็มแบบไม่ลงชื่อ 52 บิต) ขององค์ประกอบที่ส่งคืนทั้งหมด สตริง Geohash นี้คือคะแนนขององค์ประกอบในชุดที่จัดเรียง
- ASC :- ส่งคืนองค์ประกอบจากลำดับการจัดเรียงใกล้ที่สุดไปไกลที่สุด สัมพันธ์กับจุดศูนย์กลาง โดยค่าเริ่มต้นองค์ประกอบจะถูกส่งกลับในลำดับที่ไม่เรียงลำดับ
- DESC :- ส่งกลับองค์ประกอบจากที่ไกลที่สุดไปยังลำดับการจัดเรียงที่ใกล้ที่สุด สัมพันธ์กับจุดศูนย์กลาง
- นับ <นับ> :- ส่งกลับองค์ประกอบที่ จำกัด จำนวนแรก องค์ประกอบที่ตรงกัน โดยค่าเริ่มต้น องค์ประกอบที่ตรงกันทั้งหมดจะถูกส่งคืน
คืนค่า
คำสั่งนี้ส่งคืนการตอบกลับอาร์เรย์ด้วยค่าประเภทต่อไปนี้ :-
- ถ้า [ด้วย ] ไม่ได้ระบุอาร์กิวเมนต์ที่เป็นทางเลือก คำสั่งนี้จะส่งคืนอาร์เรย์ที่มีชื่อขององค์ประกอบ
- ถ้า WITHCOORD , WITHDIST , ด้วยแฮช มีการระบุตัวเลือก คำสั่งนี้จะส่งคืนอาร์เรย์ของอาร์เรย์ โดยที่แต่ละอาร์เรย์ย่อยแทนองค์ประกอบเดียว รายการแรกในอาร์เรย์ย่อยจะเป็นชื่อขององค์ประกอบที่ส่งคืนเสมอ และข้อมูลอื่น ๆ จะถูกส่งคืนตามลำดับต่อไปนี้ :-
- ระยะห่างจากจุดศูนย์กลางเป็นตัวเลขทศนิยม ในหน่วยเดียวกันที่ระบุในรัศมี
- จำนวนเต็ม geohash
- พิกัดเป็นอาร์เรย์ x,y สองรายการ (ลองจิจูด,ละติจูด)
Nil จะถูกส่งคืนเมื่อไม่มีคีย์และข้อผิดพลาดจะถูกส่งคืนเมื่อมีคีย์ แต่ค่าที่เก็บไว้ที่คีย์ไม่ใช่ประเภทข้อมูลชุดที่จัดเรียง ซึ่งเติมโดยใช้คำสั่ง GEOADD ไวยากรณ์ของคำสั่ง redis GEORADIUSBYMEMBER มีดังนี้ :-
ไวยากรณ์ :-
redis host:post> GEORADIUSBYMEMBER <keyname> <member> <radius> [UNIT] [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
ผลลัพธ์ :-
- (array) reply, representing the elements of geospatial values. - Nil, if key does not exist. - Error, if key exist and value stored at the key is not a sorted set populated using GEOADD command.
ตัวอย่าง :-
ข้อมูลอ้างอิง :-
- เอกสารคำสั่ง Redis GEORADIUSBYMEMBER
นั่นคือทั้งหมดสำหรับวิธีรับองค์ประกอบของค่า geospatial ที่เก็บไว้ใน redis datastore ซึ่งอยู่ภายใต้พื้นที่เฉพาะ หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย