Ефективността е по-малко мрежови разговори спрямо повече данни . Данните в Redis просто се разпръскват, през повечето време едно извикване на API се преобразува 1:1 с операция на сървъра на redis. Което означава, че можете да мислите за последиците от perf като просто изтегляне на json набор от данни от паметта на отдалечен сървър и десериализирането му на клиента – което всъщност е всичко, което се случва.
В някои приложни програмни интерфейси (API), като GetAll() изисква 2 извиквания, 1 за извличане на всички идентификатори в набора Entity, а другото за извличане на всички записи с тези идентификатори. Изходният код на Redis Client е доста достъпен, така че препоръчвам да погледнете, за да видите какво точно се случва.
Тъй като имате само 3 категории, спестявате не толкова много допълнителни данни, опитвайки се да филтрирате на сървъра.
Така че вашите опции са основно:
- Изтеглете целия набор от данни за обект и филтрирайте на клиента
- Поддържайте персонализирано индексно съпоставяне от Категория> Идентификатори
- По-напреднали:Използвайте LUA операция от страна на сървъра, за да приложите филтриране от страна на сървъра (изисква Redis 2.6)