مقدمه
در بخش قبلی، نحوه افزودن و بازیابی داده‌ها در Sorted Set را بررسی کردیم. اکنون به این می‌پردازیم که چگونه می‌توان اعضا را بر اساس امتیازشان به صورت صعودی (Ascending) یا نزولی (Descending) مرتب و بازیابی کرد.

افزودن داده‌های جدید
برای درک بهتر، دو عضو جدید به مجموعه users:followers اضافه می‌کنیم:

  • John با امتیاز ۱
  • David با امتیاز ۱۰۰

با استفاده از دستور:

ZADD users:followers 1 John 100 David

بازیابی به صورت پیش‌فرض (صعودی)
با دستور ZRANGE، داده‌ها به‌طور پیش‌فرض بر اساس امتیاز به صورت صعودی (از کم به زیاد) نمایش داده می‌شوند:

ZRANGE users:followers 0 -1 WITHSCORES

خروجی:

1) "John"
2) "1"
3) "Adam"
4) "10"
5) "Scott"
6) "20"
7) "Amy"
8) "30"
9) "David"
10) "100"

همان‌طور که مشاهده می‌کنید، جان با کمترین امتیاز (۱) در ابتدا و دیوید با بیشترین امتیاز (۱۰۰) در انتهای لیست قرار گرفته است.

بازیابی به صورت نزولی
برای دریافت داده‌ها به صورت نزولی (از زیاد به کم) از دستور ZREVRANGE استفاده می‌کنیم:

ZREVRANGE users:followers 0 -1 WITHSCORES

خروجی:

1) "David"
2) "100"
3) "Amy"
4) "30"
5) "Scott"
6) "20"
7) "Adam"
8) "10"
9) "John"
10) "1"

در این حالت، دیوید با امتیاز ۱۰۰ در ابتدا و جان با امتیاز ۱ در انتهای لیست قرار می‌گیرد.

نتیجه‌گیری
Sorted Set در ردیس این قابلیت انعطاف‌پذیر را فراهم می‌کند که داده‌ها را بر اساس امتیاز، هم به صورت صعودی و هم به صورت نزولی بازیابی کنید. این ویژگی برای پیاده‌سازی سیستم‌هایی مانند جدول رهبران (Leaderboards) که نیاز به نمایش داده‌ها به هر دو صورت دارند، بسیار ایده‌آل است.


Categorized in:

Tagged in: