Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Jak przechowywać zagregowane wyniki wyszukiwania w drzewie katalogów w Redis

Jeśli chcesz szybkości, powinieneś przygotować jak najwięcej podczas przechowywania struktury lub „pamięci podręcznej” w redis. Jeśli przechowujesz produkty w HSET i dodaj liczniki kategorii (po jednym na kategorię) obok elementu „dane produktu” w tym HSET , możesz użyć HINCRBY do zwiększania/zmniejszania liczników.

Ogólnie (projektując pamięć podręczną Redis dla swoich potrzeb):powinieneś starać się zapobiegać pobieraniu danych, których nie potrzebujesz.

Zalecam użycie skryptu Lua do przechowywania (/aktualizacji/usuwania) oraz pobierania raportu zbiorczego. Skrypty Lua są wykonywane na serwerze Redis. ServiceStack je obsługuje (SCRIPT LOAD + EVALSHA lub po prostu EVAL ) i możesz również wypróbować moduł klienta BookSleeve C# (którego używamy i jest nieco szybszy. 'szybszy' :dobry projekt redis-data jest oczywiście na pierwszym miejscu). Pipelining powinien być możliwy również z ServiceStack.

Jeśli kategorie i produkty mają identyfikator całkowity, można go również połączyć z ZSET , gdzie możesz użyć identyfikatora jako pola punktacji. Z ZRANGEBYSCORE możesz bezpośrednio uzyskać „rekord”. Ta technika jest bezpieczna, o ile twoje identyfikatory zawierają 15 lub mniej cyfr i nie używaj części dziesiętnej „punktacji”. Tak więc identyfikator musi pozostać w zakresie od -999999999999999 do 999999999999999. Uwaga:Te limity istnieją, ponieważ serwer Redis faktycznie przechowuje wynik (zmiennoprzecinkowy) jako reprezentację redis-string wewnętrznie.

Mam nadzieję, że to pomoże, TW




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ustawianie sesji wiosennej na serwerze redis

  2. Redis, słuchanie wydarzeń pubsub i przekształcanie ich w strumień w celu bardziej niezawodnej konsumpcji

  3. Laravel 5.1 Sesja i Socket.IO + Redis - Wysyłanie powiadomień do zalogowanych (znanych) użytkowników i grup użytkowników

  4. TTL dla członka zbioru

  5. Java+Redis czy zwykła wydajność Java w aplikacjach intensywnie korzystających z danych?