နားလည်ထားရမယ့် အချက်
Sorted set က unique member တစ်ခုစီကို floating-point score တစ်ခုနဲ့တွဲပြီး score order ထိန်းထားပါတယ်။ `ZINCRBY` ဖြင့် atomic score update၊ `ZRANK/ZREVRANK` ဖြင့် rank၊ score/rank range ဖြင့် top users ရယူနိုင်ပါတယ်။ Ties၊ score precision၊ season reset နဲ့ member deletion policy ကိုကြိုသတ်မှတ်ရပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Weekly completed lesson count ကို `leaderboard:lessons:2026-W35` key ထဲသိမ်းပြီး top 10 ကို descending ပြမယ်။ PostgreSQL က completion events source of truth ဖြစ်ပြီး leaderboard ကို rebuild နိုင်ရမယ်။ Week key ကို TTL ပေးမယ်ဆို report retention ထက်ရှည်ထားပါ။
အတူတူ စမ်းရေးကြည့်မယ်
ZINCRBY leaderboard:lessons:2026-W35 1 user:42
ZINCRBY leaderboard:lessons:2026-W35 3 user:7
ZINCRBY leaderboard:lessons:2026-W35 2 user:9
ZREVRANGE leaderboard:lessons:2026-W35 0 9 WITHSCORES
ZREVRANK leaderboard:lessons:2026-W35 user:42
EXPIRE leaderboard:lessons:2026-W35 7776000Top users၊ scores နှင့် user 42 rank ပါသော weekly leaderboard ရမည်။၅ မိနစ် စမ်းကြည့်
Course-specific leaderboard တစ်ခုရေးပြီး same score ties များအတွက် product behavior ကို document လုပ်ပါ။
သတိလေးတစ်ချက်
Money သို့ exact decimal accounting ကို sorted-set floating score အဖြစ် source of truth မထားပါနှင့်။
Redis — Sorted Sets — Redis