Поиск по сайту:
Наука — это организованное знание (Г.Спенсер).

Как включить сжатие с помощью Redis

31.03.2022
Как включить сжатие с помощью Redis

Remote Dictionary Server, или сокращенно Redis, — это молниеносная база данных в памяти, которая хранит значения в парах ключ-значение. Она в основном используется в качестве механизма кэширования для таких баз данных, как базы данных SQL и документов.

Поскольку Redis является базой данных в памяти, используемое пространство имеет решающее значение и требует тщательного мониторинга. Одной из стратегий улучшения и оптимизации производительности памяти для Redis является использование сжатия.

По умолчанию Redis не обеспечивает сжатие любых хранимых данных. Следовательно, в приложении реализованы методы сжатия.

Давайте обсудим несколько методов, которые вы можете использовать для оптимизации производительности памяти в Redis.

 

Реализуйте алгоритм сжатия

Поскольку Redis не сжимает сохраненные значения, вы должны сделать это перед их сохранением. Существует несколько алгоритмов сжатия для сжатия строк перед их сохранением.

К таким алгоритмам относятся:

  1. Сжатие LZO — очень быстрое и обеспечивает более высокую скорость декомпрессии.
  2. LZ4 — эффективен по скорости и очень легко интегрируется в приложения.
  3. Snappy — высокая скорость сжатия/распаковки.

 

Используйте более короткие имена ключей

Хотя разработчикам следует отдавать предпочтение более описательным именам, а не коротким, использование памяти может быстро возрасти, если у вас есть обширная коллекция ключей в базе данных.

Всегда рассмотрите возможность использования коротких имен ключей для ваших данных ключ-значение, чтобы избежать этого.

Пример:

SET this_is_a_very_large_key_name value

 

Вместо этого вы можете использовать имя ключа:

SET l_key_name value

 

Это уменьшает количество символов, которые Redis хранит в вашей базе данных.

 

Сжать имена полей

То же самое можно сказать и об именах полей. И опять же, использование более короткого имени поля может сэкономить несколько байтов или килобайт вашей памяти.

Следовательно, рассмотрите возможность использования коротких имен полей для ваших данных Redis.

Читать  Как скопировать базу данных MySQL

Пример показан ниже:

127.0.0.1:6379> HSET user_info id 1 firstname Maki lastname K country "India"

 

Здесь мы можем сэкономить немного памяти, рефакторинг имен полей следующим образом:

HSET user_info id 1 fname Maki lname country In

 

Это сжимает имена полей и значения.

 

Используйте список вместо хеша

Хэш состоит из имен полей и соответствующих значений. Хотя это не является серьезной проблемой, она может быть проблематичной, когда в игру вступают тысячи типов хэшей.

Чтобы решить эту проблему, вы можете выбрать список, как показано ниже:

HSET user_info id 1 fname Maki lname country In

 

Вы можете преобразовать приведенный выше хеш в список как:

LPUSH ["fname", "Maki", "lname", "K", "country", "In"]

Избегайте динамических скриптов Lua

Чтобы сэкономить еще больше памяти, избегайте использования динамических LUA-скриптов, вызывающих увеличение кэша. Чем больше скриптов вы загружаете, тем больше вы потребляете много памяти.

 

Включить сжатие списка

Как уже упоминалось, Redis не сжимает хранящиеся в нем значения. Сюда входят элементы внутри списка. Для значений из короткого списка это едва ли проблема. Однако для длинных списков может быть полезно включить сжатие.

В файле Redis.conf найдите строку:

sudo cat /etc/redis/redis.conf | grep list-compress
list-compress-depth 0 // change this value

 

Измените значение list-compress-depth на:

  1. 1 — сжимает все узлы списка, кроме головы и хвоста.
  2. 2 — никогда не сжимать голову или голову-> или хвост или хвост->пред.
  3. 3 – начать сжатие после head->next и tail->-prev

 

Обновите версию Redis

Еще один шаг, который вы можете предпринять, чтобы улучшить использование памяти на вашем сервере Redis, — это обновить версию Redis.

На момент написания этого руководства версия 4.0 (последняя) имела следующие функции.

  1. Он поддерживает смешанный формат RDB + AOF.
  2. Улучшение использования памяти и производительности.
  3. Введена новая команда памяти.
  4. Активная дефрагментация памяти.
  5. Более быстрое создание ключа кластера Redis.
Читать  Поддержка Javascript в MySQL: пример UUID

 

Закрытие

В этой статье обсуждаются различные методы и приемы, которые можно использовать для оптимизации использования памяти в кластере Redis. Однако имейте в виду, что не все формы являются 100% гарантированными.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Амбиции Intel в отношении дискретных графических карт получили мощный импульс,…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: