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

Redis бавно получава големи низове

Redis не е проектиран да съхранява много големи обекти. Не трябва да съхранявате цялата си колекция в един низ в Redis, а по-скоро да използвате Redis списък или да зададете като контейнер за вашите обекти.

Освен това форматът за туршии не е оптимизиран за пространство ... ще ви е необходим по-компактен формат. Протоколните буфери, MessagePack или дори обикновен JSON вероятно са по-добри за това. Трябва да помислите за прилагане на лек алгоритъм за компресия, преди да съхраните данните си (като Snappy, LZO, Quicklz, LZF и т.н. ...).

И накрая, производителността вероятно е свързана с мрежата. На моята машина извличането на 20 MB обект от Redis отнема 85 ms (не 3 секунди). Сега, ако стартирам същия тест с помощта на отдалечен сървър, той отнема 1,781 секунди, което се очаква в тази 100 Mbit/s мрежа. Продължителността зависи изцяло от честотната лента на мрежата.

Последна точка:не забравяйте да използвате най-новата версия на Redis - бяха направени редица оптимизации за работа с големи обекти.



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

  2. Изпълнете R скрипт при стартиране

  3. Как мога да изчистя всички екземпляри от тип X в ServiceStack Redis Client

  4. Redis:Сбор от Резултати в сортиран набор

  5. каква е средната разлика между скъпоценни камъни Nest и redis-namespace, когато използваме redis с rails/ruby