Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

Redis GEORADIUS – วิธีรับองค์ประกอบของมูลค่าทางภูมิศาสตร์ที่อยู่ภายในพื้นที่เฉพาะ

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีเก็บองค์ประกอบของค่าเชิงพื้นที่ที่คีย์ ซึ่งอยู่ภายใต้พื้นที่เฉพาะ สำหรับสิ่งนี้ เราจะใช้ Redis GEORADIUS คำสั่ง

คำสั่ง GEORADIUS

คำสั่งนี้ใช้เพื่อส่งคืนสมาชิกของค่า geospatial อย่างน้อยหนึ่งรายการ ( Sorted Set ) ที่จัดเก็บไว้ที่คีย์ ซึ่งอยู่ภายในเส้นขอบของพื้นที่ที่คำนวณโดยใช้อาร์กิวเมนต์ลองจิจูด ละติจูด และรัศมี พื้นที่นี้คำนวณโดยใช้ลองจิจูด ค่าละติจูดที่กำหนดเป็นตำแหน่งศูนย์กลางของวงกลม และรัศมีในหน่วยที่ระบุเป็นรัศมีของวงกลม

รัศมีถูกกำหนดโดยใช้หน่วยใดหน่วยหนึ่งต่อไปนี้ :- 

  1. m สำหรับมิเตอร์ ( ค่าเริ่มต้น )
  2. km สำหรับกิโลเมตร
  3. mi เป็นไมล์
  4. ft สำหรับเท้า

อาร์กิวเมนต์ที่ไม่บังคับ

คำสั่ง Redis GEORADIUS ใช้อาร์กิวเมนต์ที่เป็นตัวเลือกต่อไปนี้ :-

  1. WITHDIST :- ส่งกลับระยะทางขององค์ประกอบที่ส่งคืนจากจุดศูนย์กลางของวงกลม หน่วยของระยะทางเหมือนกับหน่วยของอาร์กิวเมนต์รัศมี
  2. WITHCOORD :- ส่งกลับเส้นแวง พิกัดละติจูดขององค์ประกอบที่ส่งคืนทั้งหมด
  3. WITHHASH :- ส่งคืนสตริง Geohash ดิบ (จำนวนเต็มแบบไม่ลงชื่อ 52 บิต) ขององค์ประกอบที่ส่งคืนทั้งหมด สตริง Geohash นี้คือคะแนนขององค์ประกอบในชุดที่จัดเรียง
  4. ASC :- ส่งคืนองค์ประกอบจากลำดับการจัดเรียงใกล้ที่สุดไปไกลที่สุด สัมพันธ์กับจุดศูนย์กลาง โดยค่าเริ่มต้นองค์ประกอบจะถูกส่งกลับในลำดับที่ไม่เรียงลำดับ
  5. DESC :- ส่งกลับองค์ประกอบจากที่ไกลที่สุดไปยังลำดับการจัดเรียงที่ใกล้ที่สุด สัมพันธ์กับจุดศูนย์กลาง
  6. นับ <นับ> :- ส่งกลับองค์ประกอบที่ จำกัด จำนวนแรก องค์ประกอบที่ตรงกัน โดยค่าเริ่มต้น องค์ประกอบที่ตรงกันทั้งหมดจะถูกส่งคืน

คืนค่า

คำสั่งนี้ส่งคืนการตอบกลับอาร์เรย์ด้วยค่าประเภทต่อไปนี้ :-  

  1. ถ้า [ด้วย ] ไม่ได้ระบุอาร์กิวเมนต์ที่เป็นทางเลือก คำสั่งนี้จะส่งคืนอาร์เรย์ที่มีชื่อขององค์ประกอบ
  2. ถ้า WITHCOORD , WITHDIST , ด้วยแฮช มีการระบุตัวเลือก คำสั่งนี้จะส่งคืนอาร์เรย์ของอาร์เรย์ โดยที่แต่ละอาร์เรย์ย่อยแทนองค์ประกอบเดียว รายการแรกในอาร์เรย์ย่อยจะเป็นชื่อขององค์ประกอบที่ส่งคืนเสมอ และข้อมูลอื่น ๆ จะถูกส่งคืนตามลำดับต่อไปนี้ :-
    1. ระยะห่างจากจุดศูนย์กลางเป็นตัวเลขทศนิยม ในหน่วยเดียวกันที่ระบุในรัศมี
    2. จำนวนเต็ม geohash
    3. พิกัดเป็นอาร์เรย์ x,y สองรายการ (ลองจิจูด,ละติจูด)

Nil จะถูกส่งคืนเมื่อไม่มีคีย์และข้อผิดพลาดจะถูกส่งคืนเมื่อมีคีย์ แต่ค่าที่เก็บไว้ที่คีย์ไม่ใช่ประเภทข้อมูลชุดที่จัดเรียง ซึ่งเติมโดยใช้คำสั่ง GEOADD ไวยากรณ์ของคำสั่ง redis GEORADIUS มีดังนี้ :-

ไวยากรณ์ :-

redis host:post> GEORADIUS <keyname> <longitude> <latitude> <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 GEORADIUS – วิธีรับองค์ประกอบของมูลค่าทางภูมิศาสตร์ที่อยู่ภายในพื้นที่เฉพาะ

อ้างอิง :-

  1. เอกสารคำสั่ง Redis GEORADIUS

นั่นคือทั้งหมดสำหรับวิธีรับองค์ประกอบของค่า geospatial ที่เก็บไว้ใน redis datastore ซึ่งอยู่ภายใต้พื้นที่เฉพาะ หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย

<- คำสั่งทางภูมิศาสตร์