Архив метки: Redis

Как включить сжатие с помощью 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.

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

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.

 

Закрытие

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



2022-03-31T15:19:10
Redis

Как изменить порт по умолчанию для Redis

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

 

Базовый

После установки Redis на свой сервер вы можете запустить сервер с помощью команды redis-server. Команда инициализирует кластер Redis, позволяя вам подключаться к нему и выполнять команды.

По умолчанию сервер Redis будет работать на порту 6379. Вы можете изменить порт запуска по умолчанию, как описано в этой статье.

 

Метод 1 — аргументы командной строки.

Первый способ изменить порт запуска по умолчанию для сервера Redis — использовать параметр командной строки.

Например, чтобы указать Redis запускаться на порту 9001, используйте флаг –port, как показано в примере команды:

redis-server --port 9001

 

Метод 2 — файл конфигурации

Мы запустили сервер Redis на настраиваемом порту, указав аргумент –port в обсуждаемом методе.

Этот метод потребует от вас указывать порт каждый раз при перезапуске сервера.

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

Откройте терминал и отредактируйте конфигурацию как:

sudo nano /etc/redis/redis.conf

 

Найдите запись, как показано ниже, и измените значение на желаемый порт.

port 6379

 

После того, как вы установите желаемый порт, сохраните и закройте файл.

Затем перезапустите службу Redis, чтобы изменения вступили в силу.

 

Подключение к настраиваемому порту

После изменения порта по умолчанию в кластере Redis вам нужно будет указать порт при подключении с помощью Redis-CLI. Вы можете использовать команду, как показано ниже:

redis-cli -h localhost -p 9001

 

Вы можете узнать больше, проверив документацию по redis-cli.

 

Выводы

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



2021-12-20T18:36:28
Redis

Как использовать RDB (файл резервной копии Redis)

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

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

Из этой статьи вы узнаете, как работать с Redis Database Backup, чтобы сохранять данные, хранящиеся в памяти, на системный диск и выполнять восстановление из RDB.

 

Резервное копирование данных

Мы используем команду SAVE для резервного копирования текущего набора данных в Redis. Команда создаст снимок, содержащий все данные в кластере Redis в двоичном формате файла dump.rdb.

Чтобы использовать команду SAVE, введите SAVE в интерфейсе командной строки Redis.

192.168.100.78:6379> SAVE

OK

 

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

В противном случае Redis вернет сообщение об ошибке с указанием типа ошибки в команде. Например, Redis выдаст следующую ошибку для неверных аргументов.

192.168.100.78:6379> SAVE 1

(error) ERR wrong number of arguments for 'save' command

 

После успешного выполнения команды SAVE Redis создаст файл dump.rdb в каталоге Redis.

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

Чтобы решить эту проблему, вы можете использовать команду BGSAVE. Она работает аналогично команде SAVE, но использует дочерний процесс в фоновом режиме.

Например:

192.168.100.78:6379> BGSAVE

Background saving started

 

Восстановление данных

Резервные копии бесполезны, если мы не можем их использовать. Давайте обсудим, как вы можете использовать файл dump.rdb для восстановления ваших наборов данных.

Для начала отметьте расположение файла резервной копии dump.rbd.

Затем остановите сервер Redis:

sudo service redis-server stop

 

Переместите файл резервной копии dump.rdp в корень сервера Redis.

sudo mv ~/dump.rdb /var/lib/redis/

 

Теперь у вас должны быть данные из dump.rdb, загруженные в Redis.

 

Вывод

В этой статье мы научились выполнять резервное копирование и восстановление в Redis с помощью файла дампа RDB.



2021-12-17T10:22:51
Redis

Как использовать снимки с Redis

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

Хотя Redis является хранилищем данных в памяти, он предоставляет различные методы для хранения и восстановления данных на системный диск и с него.

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

 

Введение

Redis предоставляет различные методы для реализации сохраняемости своих хранилищ данных. Два основных метода включают:

  1. RDB
  2. AOF

 

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

 

Что такое RDB?

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

Использование RDB для сохранения состояния имеет различные преимущества и недостатки. К ним относятся:

Преимущества RDB

  1. Использование RDB компактно и, следовательно, позволяет хранить больше данных. Следовательно, это отличный выбор, когда вам нужно заархивировать наборы данных.
  2. С помощью файла RDB легко выполнить меры по восстановлению.
  3. По сравнению с другими методами, такими как AOF, RDB быстрее при загрузке больших наборов данных.

 

Недостатки RDB

  1. Этот метод не очень подходит для аварийного резервного копирования.
  2. Он обычно использует больше системных ресурсов, таких как ЦП.

 

Что такое AOF?

AOF — файл только для добавления — это метод сохранения, который записывает журнал действий, полученных кластером Redis. Затем этот файл журнала можно использовать при запуске сервера Redis и воссоздать весь набор данных.

Как и в случае с RDB, такие методы имеют различные преимущества и недостатки.

 

Преимущества AOF

  1. Он намного больше подходит для RDB на случай аварийных резервных копий. AOF продолжит резервное копирование журналов в фоновом режиме, когда они станут слишком большими.
  2. Поскольку метод AOF добавляет только недавно выполненные операции, вероятность повреждения данных минимальна.
  3. Файл AOF легко понять и экспортировать, поскольку он последовательно регистрирует операции, выполняемые на сервере.

 

Недостатки AOF

  1. В отличие от файлов RDB, резервные копии AOF имеют больший размер при том же наборе данных.
  2. В зависимости от политики fsync резервное копирование AOF может быть медленнее по сравнению с RDB.

 

Как работают снимки?

Создание снимка в Redis экспортирует все данные в памяти в двоичный файл. Обычно файл моментального снимка имеет имя dump.rdb. Файл RDB содержит все наборы данных в памяти, включая конфигурации и структуру. Это позволяет очень легко восстановить данные с помощью файла RDB в случае сбоя.

Под капотом:

  1. Родительский процесс Redis создаст дочерний процесс для обработки снимков в файле RDB.
  2. Дочерний процесс возьмет все наборы данных и запишет их в файл RBD.
  3. Если процесс RDB настроен на запуск с интервалом, старый файл RBD перезаписывается содержимым нового файла.

 

Как сделать снимок в Redis

Как и все остальное в Redis, сделать снимок вашего последнего набора данных очень просто.

Используйте команду SAVE для создания файла dump.rdb.

192.168.100.78:6379> SAVE

OK

 

ПРИМЕЧАНИЕ
После того, как вы запустите команду SAVE, все остальные клиенты будут заблокированы до тех пор, пока задача не будет завершена. Следовательно, не рекомендуется запускать в производственной среде или с обширным набором данных.

Альтернативой команде SAVE является команда BGSAVE. Резервное копирование будет выполнено в фоновом режиме с использованием дочернего процесса. Использование команды BGSAVE не блокирует других клиентов.

192.168.100.78:6379> BGSAVE

Background saving started

 

Как использовать AOF?

Чтобы использовать команду AOF, используйте команду BGREWRITEAOF как:

192.168.100.78:6379> BGREWRITEAOF

Background append only file rewriting started

 

Вывод

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



2021-12-16T13:32:13
Redis

Салат грибной с редисом

Ингредиенты:

  • Яйцо — 4 шт
  • Грибы — 250 г
  • Свинина — 250 г
  • Лук — 2 шт
  • Редис — 2 шт
  • Майонез — 180 г
  • Растительное масло — 2 ст»л»
  • Соль — 1 ст»л»
  • Уксус — 50 мл
  • Вода — 80 мл

Инструкция:

Яйца отварить, нарезать полосками»
Грибы нарезать пластинами и обжарить на растительном масле»
Свинину отварить в соленой воде» Нарезать соломкой»
Лук нарезать полукольцами, замариновать в уксусе с водой»
Редис помыть и нарезать мелкой соломкой»
Салат выкладывать слоями: яйцо, жареные грибы, майонез,свинина,лук, редис, майонез» Слои повторить еще раз»

Фотографии:











Салат из краснокочанной капусты

Ингредиенты:

  • Краснокочанная капуста — 0,25 кочана
  • Редис — 1 пучок
  • Капуста пекинская — 0,25 кочана
  • Чеснок — 2 зубка
  • Сок лимона — 1-2 ч»л»
  • Уксус яблочный — 2 ст»л»
  • Сахар — 1 ст»л»
  • Растительное масло — 2 ст»л»
  • Лук — 0,5 шт
  • Перец — 1/4 ч»л»

Инструкция:

Тонко нарезать лук, чеснок, капусту, редис»Смешать лук, уксус, сок
лимона» Добавить сахар, масло, черный перец и оставить маринад на 15
минут» Добавить овощи в маринад и
хорошо перемешать»

Фотографии: