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 เป็นโครงสร้างข้อมูลที่เก็บค่าพร้อมคะแนน และเรียงลำดับโดยอัตโนมัติ
  • รองรับการเพิ่ม ลบ และดึงค่าตามลำดับคะแนน
  • เหมาะสำหรับการจัดอันดับ เช่น กระดานคะแนน หรือระบบจัดลำดับข้อมูล