Полезные инструменты для бизнеса и личной эффективности

Redis

Redis — резидентная система управления базами данных класса NoSQL с открытым исходным кодом, работающая со структурами данных типа «ключ — значение»

Официальный сайт

Категория:

Описание

Redis – быстрое хранилище в памяти с открытым исходным кодом для структур данных «ключ-значение». Redis поставляется с набором разнообразных структур данных в памяти, что упрощает создание различных специальных приложений. Самые распространенные примеры использования Redis включают кэширование, управление сессиями, системы «издатель-подписчик» и таблицы лидеров. Это самое популярное на текущий момент хранилище пар «ключ-значение». Оно обладает лицензией BSD, написано на оптимизированном коде C и поддерживает несколько языков разработки. Название Redis является акронимом от REmote DIctionary Server.

Особенности сервиса

  • Redis умеет сохранять данные на диск. Можно настроить Redis так, чтобы данные вообще не сохранялись, сохранялись периодически по принципу copy-on-write, или сохранялись периодически и писались в журнал (binlog). Таким образом, всегда можно добиться требуемого баланса между производительностью и надежностью.
  • В основе своей использует записи вида ключ-значение. Ключи бинарнобезопасны. Это значит, что в качесте ключа может быть использована любая бинарная последовательность, полученная хоть из сроки, хоть из JPG-картинки. Максимальный размер ключа – 512 MB.
  • В качестве значений поддерживаются следующие структуры данных:
    • Строки (strings). Это те же самые ключи, но сохранённые как значения.
    • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка.
    • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств.
    • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score». Позволяет выбирать группы значений из множества. Например, 10 сверху. Присутствует возможность лексических упорядоченных множеств строк, у которых поле score одинаковое.
    • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы.
    • Битовые массивы (bitmaps).
    • HyperLogLog. Структура данных для реализации алгоритма случайного вероятностного подсчета количества уникальных значений.
  • Для всех типов поддерживаются атомарные операции (например вставка в список или пересечение множеств).
  • Позволяет хранить не только строки, но и массивы (которые могут использоваться в качестве очередей или стеков), словари, множества без повторов, , а также множества, отсортированные по некой величине. Разумеется, можно работать с отдельными элементами списков, словарей и множеств. Присутствует возможность указать время жизни данных (двумя способами – «удалить тогда-то» и «удалить через …»).
  • Redis – это однопоточный сервер. Такое решение сильно упрощает поддержку кода, обеспечивает атомарность операций и позволяет запустить по одному процессу Redis на каждое ядро процессора. Разумеется, каждый процесс будет прослушивать свой порт.
  • В Redis есть репликация. Репликация с несколькими главными серверами не поддерживается. Каждый подчиненный сервер может выступать в роли главного для других. Репликация в Redis не приводит к блокировкам ни на главном сервере, ни на подчиненных. На репликах разрешена операция записи. Когда главный и подчиненный сервер восстанавливают соединение после разрыва, происходит полная синхронизация (resync).
  • Redis поддерживает транзакции (будут последовательно выполнены либо все операции, либо ни одной) и пакетную обработку команд (выполняем пачку команд, затем получаем пачку результатов). Притом ничто не мешает использовать их совместно.
  • Redis – поддержка механизма publish/subscribe. С его помощью приложения могут создавать каналы, подписываться на них и помещать в каналы сообщения, которые будут получены всеми подписчиками. Что-то вроде IRC-чата.

 

Варианты использования сервиса

  • Хранилище сессий и профилей пользователей;
  • Сервер очередей, плюс держим в уме механизм publish/subscribe;
  • Полноценная замена Memcached, притом в случае с Redis мы получим репликацию, более длинные ключи и значения, возможность восстановления кэша с диска и тп;
  • Место для хранения количества пользователей онлайн, кодов капч, различных флагов, саджестов поисковых запросов;
  • СУБД для небольших приложений — сокращалок ссылок, имиджбордов, возможно даже блогов;
  • Роль «словаря» в шардинге, то есть сервер, который знает, какие шарды на каких серверах искать;
  • Хранилище промежуточных результатов вычислений при обработке больших объемов данных.

Аналоги и Альтернативы для Redis

Особенности: NoSQL

Списки:

KeyDB

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

Продолжить чтение

Блог, обзоры, новости

KeyDB как [потенциальная] замена Redis

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

Продолжить чтение

Посмотреть блог по теме: Redis

Отзывы

Плюсы и минусы продукта

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Redis”

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

Закрыть меню
×

Корзина