مقدمه
در بخش قبلی، نحوه افزودن و بازیابی دادهها در 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) که نیاز به نمایش دادهها به هر دو صورت دارند، بسیار ایدهآل است.