Redis
 sql >> база данни >  >> NoSQL >> Redis

Как функционира ServiceStack Redis при извличане на данни

Ефективността е по-малко мрежови разговори спрямо повече данни . Данните в Redis просто се разпръскват, през повечето време едно извикване на API се преобразува 1:1 с операция на сървъра на redis. Което означава, че можете да мислите за последиците от perf като просто изтегляне на json набор от данни от паметта на отдалечен сървър и десериализирането му на клиента – което всъщност е всичко, което се случва.

В някои приложни програмни интерфейси (API), като GetAll() изисква 2 извиквания, 1 за извличане на всички идентификатори в набора Entity, а другото за извличане на всички записи с тези идентификатори. Изходният код на Redis Client е доста достъпен, така че препоръчвам да погледнете, за да видите какво точно се случва.

Тъй като имате само 3 категории, спестявате не толкова много допълнителни данни, опитвайки се да филтрирате на сървъра.

Така че вашите опции са основно:

  • Изтеглете целия набор от данни за обект и филтрирайте на клиента
  • Поддържайте персонализирано индексно съпоставяне от Категория> Идентификатори
  • По-напреднали:Използвайте LUA операция от страна на сървъра, за да приложите филтриране от страна на сървъра (изисква Redis 2.6)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Влияе ли дължината на името на производителността в Redis?

  2. Огромно забавяне при използване на Celery + Redis

  3. Как мога да използвам redis с Django?

  4. HSET, ако съществува ключ

  5. Redis Cluster срещу ZeroMQ в Pub/Sub, за хоризонтално мащабирани разпределени системи