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

Защо 500MB Redis dump.rdb файл отнема около 5,0GB памет?

Съотношението на паметта към размера на дъмпа зависи от типовете данни, които Redis използва вътрешно.

За малки обекти (хешове, списъци и сортирани набори), redis използва циплисти за кодиране на данни. За малки набори, направени от цели числа, redis използва Intsets. ZipLists и IntSets се съхраняват на диск в същия формат, в който се съхраняват в паметта . Така че бихте очаквали съотношение 1:1, ако данните ви използват тези кодировки.

За по-големи обекти представянето в паметта е напълно различно от представянето на диска. Форматът на диска е компресиран, няма указатели, не трябва да се занимава с фрагментация на паметта. Така че, ако вашите обекти са големи, съотношението памет към диск 10:1 е нормално и очаквано.

Ако искате да знаете кои обекти изяждат паметта, използвайте redis-rdb-tools, за да профилирате данните си (отказ от отговорност:аз съм авторът на този инструмент). Оттам следвайте бележките за оптимизиране на паметта в redis.io, както и записа в уики за оптимизация на паметта на redis-rdb-tools.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. съхраняване на времеви редове в redis

  2. ActionCable на AWS:Грешка по време на ръкостискане на WebSocket:Неочакван код на отговор:404

  3. Не може да се свърже Redis Cluster в Elasticache към PHP с помощта на библиотека phpredis

  4. Redis py:кога да използваме пул за връзки?

  5. Какъв е смисълът на REDIS в стека ELK?