Autor Wątek: [Redis] warunek WHERE jak w MYSQL  (Przeczytany 1923 razy)

Offline Arthes

  • Użytkownik
    • Gromaniak

# Kwiecień 17, 2012, 15:22:25
Witam.
Chciałem się spytać - w jaki sposób w Redis'ie pobrać tylko takie klucze, które spełniają określony warunek? Chodzi mi o coś takiego, że pobieram np. graczy, dla których level > 10.
players:*:level > 10
Szukałem w internecie, ale nie znalazłem. Może jest tu ktoś obeznany, kto mógłby pomóc? :)
Z góry dzięki za odpowiedź.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Troll

  • Użytkownik
    • Oficjalna strona gry Gizarma

# Kwiecień 17, 2012, 16:33:49
Z tego co wiem Redis nie ma wbudowanych mechanizmów do przeszukiwania danych innych niż dostęp przez klucz. Jeżeli to problem być może powinieneś się zainteresować np. MongoDB
« Ostatnia zmiana: Kwiecień 17, 2012, 16:41:58 wysłana przez Troll »

Offline Xion

  • Redaktor
    • xion.log

# Kwiecień 17, 2012, 18:26:24
Jak wyżej. Natomiast Redis jak najbardziej wspiera transakcje, wobec czego możesz je wykorzystać do utrzymywania dodatkowej, zdenormalizowanej kolekcji obiektów odpowiadających twojemu zapytaniu. W twoim przypadku uaktualniałbyś ją (potencjalnie) przy każdej zmianie levelu użytkownika, dodawaniu nowego, usuwaniu itd. "Zapytanie" polegałoby wtedy po prostu na pobraniu tejże kolekcji.

Inna sprawa: czy Redis przypadkiem nie jest czysto pamięciowym składem danych? Jeśli dobrze pamiętam, to permanentne dane graczy powinieneś trzymać raczej gdzie indziej, np. we wspomnianym MongoDB albo jakiejś bazie SQLowej.

Offline Troll

  • Użytkownik
    • Oficjalna strona gry Gizarma

# Kwiecień 17, 2012, 18:35:02
Inna sprawa: czy Redis przypadkiem nie jest czysto pamięciowym składem danych? Jeśli dobrze pamiętam, to permanentne dane graczy powinieneś trzymać raczej gdzie indziej, np. we wspomnianym MongoDB albo jakiejś bazie SQLowej.

Jest pamięciowa, ale można ją tak skonfigurować, żeby backupowała dane na dysku.