Redis: Быстрая база данных в памяти для разработчиков

Redis — бесплатное хранилище данных, используемое миллионами разработчиков как кэш, база данных или система обмена сообщениями. Название расшифровывается как Remote Dictionary Server — удалённый словарь, хранящий пары «ключ-значение» без жёстких требований к структуре данных.

Скорость и надёжность

Redis отличается высокой скоростью работы: чтение и запись данных занимают доли миллисекунды. Это достигается за счёт хранения данных в оперативной памяти, в отличие от таких баз данных, как MongoDB или MySQL, использующих жёсткий диск. Однако, хранение данных в оперативной памяти создаёт риск потери информации при отключении электропитания. Для минимизации этого риска Redis предлагает механизмы сохранения данных на жёсткий диск:

  • RDB (Redis Database): периодически создаёт резервные копии всех данных из оперативной памяти на жёсткий диск.
  • Append Only File (AOF): записывает все операции с данными, позволяя восстановить их в случае потери.

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

Быстрый запуск с Docker

Быстрый запуск Redis осуществляется с помощью Docker. Выполните следующие команды в терминале:

  1. docker run redis (запуск контейнера с образом Redis)
  2. docker ps (проверка запуска)
  3. docker exec -it myredis redis-cli (запуск Redis CLI для подключения к серверу внутри контейнера)

Проверьте доступность сервера командой redis-cli ping.

Основные команды

Основные операции в Redis:

  • Запись данных: SET Car Ferrari (записывает ключ Car со значением Ferrari)
  • Чтение данных: GET Car (получает значение ключа Car)
  • Удаление данных: DEL Car (удаляет ключ Car)
  • Установка времени жизни ключа: SETEX key 10 value (ключ будет удалён через 10 секунд)
  • Поиск всех ключей: KEYS *
  • Работа с множествами:
    • SADD Fruits Apple Banana (добавление элементов в множество)
    • SMEMBERS Fruits (просмотр элементов множества)
    • SREM Fruits Apple (удаление элемента из множества)
    • DEL Fruits (удаление множества)

Redis поддерживает различные типы данных, включая строки и множества.

Завершение работы

Остановите и удалите контейнер командой docker stop myredis && docker rm myredis. Более подробная информация доступна на redis.io.

Что будем искать? Например,программа