Wydajność to mniej połączeń sieciowych kontra więcej danych . Dane w Redis są po prostu blobowane, w większości przypadków pojedyncze wywołanie interfejsu API mapuje 1:1 z operacją serwera Redis. Oznacza to, że możesz myśleć o implikacjach wydajności jako po prostu pobieraniu obiektu blob zestawu danych json z pamięci zdalnego serwera i deserializacji go na kliencie - co w rzeczywistości się dzieje.
W niektórych interfejsach API, takich jak GetAll(), wymaga 2 wywołań, 1 do pobrania wszystkich identyfikatorów w zestawie Entity, a drugiego do pobrania wszystkich rekordów z tymi identyfikatorami. Kod źródłowy klienta Redis jest dość przystępny, więc polecam przyjrzeć się dokładnie, co się dzieje.
Ponieważ masz tylko 3 kategorie, nie oszczędzasz zbyt wielu dodatkowych danych, próbując filtrować na serwerze.
Masz więc następujące opcje:
- Pobierz cały zestaw danych encji i filtruj na kliencie
- Utrzymuj niestandardowe mapowanie indeksu z kategorii> Identyfikatory
- Bardziej zaawansowane:użyj operacji LUA po stronie serwera, aby zastosować filtrowanie po stronie serwera (wymaga Redis 2.6)