Efektivita je méně síťových hovorů vs více dat . Data v Redis se prostě blobují, většinou jediné volání API mapuje 1:1 s operací serveru redis. Což znamená, že o důsledcích výkonu můžete uvažovat jako o prostém stažení objektu blob datové sady json z paměti vzdáleného serveru a jeho deserializaci na klientovi – což je vlastně vše, co se stane.
V některých rozhraních API, jako je GetAll(), vyžaduje 2 volání, 1 k načtení všech ID v sadě entit a druhé k načtení všech záznamů s těmito ID. Zdrojový kód klienta Redis je docela přístupný, takže doporučuji podívat se, co se přesně děje.
Protože máte pouze 3 kategorie, neušetříte tolik dat navíc, když se pokusíte filtrovat na serveru.
Takže vaše možnosti jsou v zásadě:
- Stáhněte si celou datovou sadu entity a filtrujte na klientovi
- Udržujte vlastní mapování indexu z kategorie> ID
- Pokročilejší:Použijte operaci LUA na straně serveru k použití filtrování na straně serveru (vyžaduje Redis 2.6)