Redis Sorted Set ve Leaderboard Kullanımı


Redis Sorted Set ve Leaderboard Kullanımı

Oyun sektöründen büyük ölçekli web uygulamalarına kadar farklı senaryolarda leaderboard (liderlik tablosu) ihtiyacı sıkça ortaya çıkar. Redis Sorted Set veri yapısı, bu ihtiyaca yüksek performanslı ve kolay ölçeklenebilir bir çözüm sunar. Redis'in sorted set özelliği, her bir öğeyi belirli bir skora göre sıralamanıza ve hızlıca arama yapmanıza olanak tanır. Bu makalede, Redis Sorted Set ve gerçek hayatta sıkça karşımıza çıkan leaderboard uygulamaları için örnekler bulacaksınız.

Redis Sorted Set Nedir?

Sorted Set (Sıralı Küme), Redis'in ZSET adıyla sağladığı ve her değerin (üye) bir sayı (score) ile eşleştiği bir veri yapısıdır. Bir leaderboard'da genellikle kullanıcı adlarını ve puanlarını sıralı şekilde tutmak istersiniz. Redis Sorted Set ile şu işlemleri kolayca yapabilirsiniz:

  • Kullanıcıya yeni puan eklemek veya mevcut puanı güncellemek (ZADD)
  • Belli bir aralıktaki en yüksek/ en düşük puanları çekmek (ZREVRANGE / ZRANGE)
  • Bir kullanıcının sırasını öğrenmek (ZRANK / ZREVRANK)

Leaderboard Oluşturma: Temel Örnekler

1. Kullanıcıya Puan Ekleme

Kullanıcıların puanlarını Redis üzerinde saklamak için aşağıdaki komutu kullanabilirsiniz:

ZADD leaderboard 500 "ali"
ZADD leaderboard 800 "ayse"
ZADD leaderboard 650 "mehmet"

2. En Yüksek 3 Skoru Çekme

En yüksekten düşüğe doğru ilk 3 oyuncuyu çekmek için:

ZREVRANGE leaderboard 0 2 WITHSCORES

Çıktı:

1) "ayse"   2) "800"
3) "mehmet" 4) "650"
5) "ali"    6) "500"

3. Belirli Kullanıcının Sırasını Bulmak

ZREVRANK leaderboard "mehmet"

Bu komut sonucu mehmet kullanıcısının sırasını (index) döndürür (0 tabanlıdır).

Uzmanlık: Güncel Puanı Artırma

Leaderboard gibi ortamlarda yeni bir puan eklendiğinde sadece ekleme değil, mevcut puan üzerinde artış yapmak da gerekebilir. Bunun için ZINCRBY komutunu kullanabilirsiniz:

ZINCRBY leaderboard 100 "ali"

Artık "ali"nin puanı 600 oldu.

Sonuç

Özellikle anlık sıralama ve yüksek hız gerektiren oyun puan tablolarında, Redis Sorted Set ile leaderboard oluşturmak hem pratik hem de performanslı bir çözümdür. Eğer projenizde hızlı, güvenilir ve kolayca güncellenebilen bir puan tablosu ihtiyacınız varsa, Redis Sorted Set sizin için ideal veri yapısıdır. Redis Sorted Set ve leaderboard konusu ile ilgili sorularınızı yorumlarda belirtebilirsiniz!