Skip to main content

Redis Sorted Sets

1. บทนำ

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

2. คำสั่งพื้นฐานของ Redis Sorted Sets

Redis มีคำสั่งสำหรับจัดการ Sorted Sets หลายคำสั่ง ดังนี้:

2.1 การเพิ่มข้อมูลเข้า Sorted Set

ZADD myzset 100 "Alice"
ZADD myzset 200 "Bob"
ZADD myzset 150 "Charlie"
  • ZADD ใช้เพื่อเพิ่มค่าลงใน Sorted Set พร้อมกับกำหนดคะแนน (score) ให้กับแต่ละค่า

2.2 การดึงค่าทั้งหมดจาก Sorted Set ตามลำดับคะแนน

ZRANGE myzset 0 -1 WITHSCORES
  • ZRANGE ใช้เพื่อดึงข้อมูลจาก Sorted Set โดยเรียงลำดับจากคะแนนต่ำไปสูง
  • WITHSCORES ใช้เพื่อให้แสดงคะแนนของแต่ละค่า

2.3 การดึงค่าตามลำดับคะแนนจากมากไปน้อย

ZREVRANGE myzset 0 -1 WITHSCORES
  • ZREVRANGE ใช้เพื่อดึงข้อมูลโดยเรียงลำดับจากคะแนนสูงไปต่ำ

2.4 การดึงค่าตามช่วงคะแนนที่กำหนด

ZRANGEBYSCORE myzset 100 200
  • ZRANGEBYSCORE ใช้เพื่อดึงค่าที่มีคะแนนอยู่ในช่วงที่กำหนด

2.5 การนับจำนวนค่าที่อยู่ในช่วงคะแนนที่กำหนด

ZCOUNT myzset 100 200
  • ZCOUNT ใช้เพื่อนับจำนวนค่าที่มีคะแนนอยู่ในช่วงที่ระบุ

2.6 การลบค่าจาก Sorted Set

ZREM myzset "Alice"
  • ZREM ใช้เพื่อลบค่าที่ระบุออกจาก Sorted Set

2.7 การดึงลำดับของค่าภายใน Sorted Set

ZRANK myzset "Charlie"
ZREVRANK myzset "Charlie"
  • ZRANK ใช้เพื่อดึงลำดับของค่าตามลำดับคะแนนจากน้อยไปมาก
  • ZREVRANK ใช้เพื่อดึงลำดับของค่าตามลำดับคะแนนจากมากไปน้อย

3. ข้อควรระวัง

  • Redis Sorted Sets ใช้พื้นที่มากกว่า Sets เนื่องจากต้องเก็บคะแนนของแต่ละค่า
  • การใช้ ZRANGE กับข้อมูลที่มีขนาดใหญ่อาจทำให้การประมวลผลช้าลง

4. สรุป

  • Redis Sorted Sets เป็นโครงสร้างข้อมูลที่เก็บค่าพร้อมคะแนน และเรียงลำดับโดยอัตโนมัติ
  • รองรับการเพิ่ม ลบ และดึงค่าตามลำดับคะแนน
  • เหมาะสำหรับการจัดอันดับ เช่น กระดานคะแนน หรือระบบจัดลำดับข้อมูล