как узнать номер бд redis

Знакомимся с Redis

Узнаём, для чего эта СУБД нужна и как ею пользоваться.

Redis ( REmote DIctionary Server, «удалённый серверный словарь») — это нереляционная резидентная СУБД, хранящая данные в виде пар «ключ-значение».

От реляционных баз Redis отличается:

как узнать номер бд redis. 08035608042021 11a3428e7abc9bac29137421556331dcb1a157b9. как узнать номер бд redis фото. как узнать номер бд redis-08035608042021 11a3428e7abc9bac29137421556331dcb1a157b9. картинка как узнать номер бд redis. картинка 08035608042021 11a3428e7abc9bac29137421556331dcb1a157b9.

Разрабатывает приложения на Java, воспитывает двух котов: Котлин и Монго.

Для чего используют Redis

Redis обычно применяют:

Как начать работать с Redis

Самый лёгкий способ — запустить Redis в docker-контейнере (если не знаете, что это, — добро пожаловать сюда).

Запускаем контейнер командой:

Убедимся, что контейнер запущен:

как узнать номер бд redis. 08093208042021 27e9aa5bdf801f94f7728fe14d1ac08405e5a691. как узнать номер бд redis фото. как узнать номер бд redis-08093208042021 27e9aa5bdf801f94f7728fe14d1ac08405e5a691. картинка как узнать номер бд redis. картинка 08093208042021 27e9aa5bdf801f94f7728fe14d1ac08405e5a691.

Затем открываем новую сессию и интерфейс командной строки ( CLI ):

как узнать номер бд redis. 08093208042021 e3ea06ecc4efe66fd609360c227a5daace25eda6. как узнать номер бд redis фото. как узнать номер бд redis-08093208042021 e3ea06ecc4efe66fd609360c227a5daace25eda6. картинка как узнать номер бд redis. картинка 08093208042021 e3ea06ecc4efe66fd609360c227a5daace25eda6.

Можно и сразу перейти в консоль Redis:

как узнать номер бд redis. 08093208042021 db52642fc67f6c7c46657360f234a883af322464. как узнать номер бд redis фото. как узнать номер бд redis-08093208042021 db52642fc67f6c7c46657360f234a883af322464. картинка как узнать номер бд redis. картинка 08093208042021 db52642fc67f6c7c46657360f234a883af322464.

Вот мы и готовы работать с Redis.

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

Рассмотрим основные операции на примере хеш-таблиц.

HSET — сохраняет значение по ключу:

В примере выше мы создали объект person1 с двумя полями ( name и age) и соответствующими значениями.

HGET — получение значения по ключу (для определённого поля):

Выше мы получили значение поля name у ключа person1.

HGETALL — получение всех пар «ключ-значение»:

Получили значения всех полей по ключу person1.

HKEYS и HVALS — получение всех ключей и соответствующих им значений:

Как работать с оставшимися структурами данных — смотрите в официальном руководстве.

Транзакции

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

После запуска команды multi интерфейс redis-cli ответил на каждую последующую состоянием QUEUED («в очереди»). Когда мы запустили команду exec, то получили выходные данные каждой команды из очереди.

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

Важно понимать, что когда команда уже встала в очередь (то есть синтаксически верна), то, даже если она и вызовет ошибку при выполнении, остальные команды выполнятся всё равно. А вот если не встала (невалидна, вызвала ошибку при постановке в очередь), то Redis блок транзакции отклонит, даже не дождавшись exec. И если вы попытаетесь после этого выполнить exec, вам скажут, что транзакция была отклонена из-за предыдущих ошибок.

Как Redis обрабатывает ошибки внутри транзакций, читайте тут.

Механизм подписок

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

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

Итак, клиент подписывается на канал командой:

Источник

Шпаргалка по Redis

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

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

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

Ключи

Типы данных Redis

Базовые операции

Подробности о командах, связанных с этой задачей можно найти в документации в разделах Keys и Strings.

Задача 2, время жизни объекта.

Подробности о командах, связанных с этой задачей можно найти в документации в разделах Keys и Strings.

Задача 3, pipelining, выполнение нескольких команд одним запросом.

Pipelining удобно использовать для оптимизации массовых вставок.

Подробности о командах, связанных с этой задачей можно найти в документации в разделе Transactions.

Строки/числа

Задача 5, продемонстрировать основные строковые операции.

Задача 6, продемонстрировать операции над числами.

Подробности о командах, связанных с этими задачами можно найти в документации в разделе Strings.

Списки

Задача 7, создать список, продемонстрировать основные операции над списками.

Подробности о командах, связанных с этой задачей можно найти в документации в разделе Lists.

Множества, упорядоченные множества

Задача 8, создать множество, продемонстрировать основные операции над множествами.

Подробности о командах, связанных с этой задачей можно найти в документации в разделе Sets.

Задача 9, создать упорядоченное множество и продемонстрировано основные операции над ним.
В упорядоченном множестве элементы сравниваются по дополнительному параметру «score».

Подробности о командах, связанных с этой задачей можно найти в документации в разделе Sorted sets.

Хеш-таблицы

Задача 10, Создать хеш-таблицу и продемонстрировать основные операции над хешами.

Подробности о командах, связанных с этой задачей можно найти в документации в разделе Hashes.

Pub/Sub, сообщения в Redis

Задача 11, подписаться на сообщения на одном клиенте и отправить сообщение из другого.
Приведем окна двух клиентов, в первом окне совершается подписка на сообщения и видно отправленное из второго окна сообщение.

Задача 12, подписаться на сообщения на одном клиенте и отправить сообщение из другого. Подписку осуществить с помощью шаблонов.
Приведем окна двух клиентов, в первом окне совершается подписка на сообщения и видно отправленное из второго окна сообщение.

Подробности о командах, связанных с этими задачами можно найти в документации в разделе Pub/Sub.

Источник

Redis для начинающих

Введение

С одной стороны есть традиционные ACID реляционные базы данных такие как MySQL, PostgreSQL, Oracle и др. Они надежны и стабильны. Сама аббревиатура ACID описывает требования к транзакционной системе (Atomicity — Атомарность, Consistency — Согласованность, Isolation — Изолированность, Durability — Долговечность). Их основная задаче не просто хранить данные, а хранить с максимальной надежностью. Но их основной недостаток, они очень медленные.

С другой стороны есть очень быстрые хранилища в памяти типа ключ-значение, например memcached. Они очень быстрые за счет предельной простоты и отказа от надежности. Несложно привести несколько примеров задач где нужна производительность даже за счет надежности:
— система мониторинга с n-ым количеством датчиков, которые должны постоянно отправлять данные.
— система логирования действий пользователя на каком нибудь сайте
— контроль трафика сети в реалтайм
— хранение сессий пользователей
и т.д.

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

Redis (REmote DIctionary Server) — это не реляционная структура данных в памяти, используемая в качестве базы данных. Данные хранятся в виде пары ключ-значение. И при этом хранилище умеет масштабироваться путем репликации между серверами. Redis сохраняет все данные в памяти, что позволяет сделать доступ к данным максимально быстрым по сравнению с другими базами данных. Почему Redis известен своей исключительной высокой производительностью даже среди других key-value хранилищ.

Redis позволяет нам хранить данные в высокоуровневых структурах данных, такие как строки, хэши, списки, наборы. Это дает нам больше гибкости в отношении типа и объема информации, которую мы можем хранить в хранилище данных Redis.

Он также довольно дружелюбен для разработчиков, поскольку поддерживает большинство языков высокого уровня, таких как Python, JavaScript, Java, C / C ++ и PHP.

Установка Redis

Для дальнейшего изучения Redis нам необходимо скачать и установить сервер Redis. Можно использовать инструкции с официальной веб-страницы. Так же под MacOS можно использовать Homebrew, а для Linux что типа apt. Для запуска Redis используется команда redis-server

У Redis есть Redis-CLI (Common Line Interface), который можно использовать для взаимодействия с данными напрямую на сервере Redis.

Чтобы проверить правильность установки Redis, запустите redis-cli, а затем введите команду ping в появившейся подсказке:

Если сервер отвечает ответом PONG значит он готов к работе. По умолчанию сервер Redis работает на порту 6379, что видно в нашем приглашении.

Что бы выйти из redis-cli используйте команду quit.

Для вывода помощи по списку команд в консоли можно использовать команду HELP @string. Для вывода помощи по конкретной команде можно использовать команду HELP APPEND Например:

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

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

Команды

Прежде всего Redis это хранилище типа ключ: значение. И самые первые команды которую все изучают, это команды SET и GET:

Команда используется для установки ключа и его значения, с дополнительными необязательными параметрами для указания срока действия записи значения ключа. Давайте установим ключ foo со значением «hello world». Параметр EX указывает время жизни объекта в секундах, PX в милисекундах:

Команда используется для получения значения, связанного с ключом. Если запись значения ключа превысила срок действия, будет возвращено nil:

По умолчанию все значение в Redis сохраняются как строки.

EXISTS

Эта команда проверяет, существует ли что то с данным ключом. Она возвращает 1 если объект существует или 0 если нет. Boolean типа в Redis нет.

FLUSHALL

Эта команда полностью удаляет все данные в текущем сеансе.

GETSET

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

Команда удаляет ключ и соответствующее значение:

APPEND

Команда добавляем в соотвествующий ключ дополнительное значение. Возвращает количество символов итогового значения.

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

INCR / DECR

Инкремент / декримент. Если значение ключа integer (хотя в базе храниться все равно строка) можно увеличить или уменьшить значение на 1. Если использовать команду INCR с несуществующем значением то создаться новый ключ со значением 1.

Когда ключ установлен с истечением срока действия (например SET foo EX 10), эту команду можно использовать для просмотра оставшегося времени:

PERSIST

Если мы передумаем об истечении срока действия ключа, мы можем использовать эту команду, чтобы удалить период истечения срока действия:

RENAME

Эта команда используется для переименования ключей на нашем сервере Redis:

Комплексные типы данных

Хеш таблицы

Redis позволяет в качестве значения так же использовать ключ: значение. Что по сути будет почти аналогией объектов из JavaScript или словари в Python. Для записи объекта используется команда HSET в следующем формате HSET имя_ключа имя_атрибута значение. Для чтения объекта используется команда HGET в формате HGET имя_ключа имя_атрибута. Команда HGETALL используется для получения

Множества

Не упорядоченная коллекция уникальных элементов. Аналог set в Python. Для добавление нового элемента во множество используется команда SADD. Для получения все элементов используется команда SMEMBERS. SUNION используется для объединение множеств. SDIFF используется для вычитания из первого множества второго. SINTER возвращает общие элементы указаных множеств. SPOP удаляет и возвращает случайный элемент множества.

Упорядоченные множества

Упорядоченная коллекция уникальных элементов. Для добавление нового элемента в упорядоченное множество используется команда ZADD. Формат ZADD имя_ключа порядковое_число_упорядочивания_множества значение
Команда ZRANGE возвращает срез данных множества

Списки

Транзакции в Redis

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

С помощью команды MULTI можно начать запись команд. Далее введенные команды не исполняются а записываются в буфер. Это будет происходит до ввода команды на исполнения транзакции EXEC. Далее все ранее введенные команды будут исполнены один за другим. Команда DISCARD отмена записи команд транзакций. Если возникнет ошибка в процессе ввода команд вся транзакция не будет выполнена.

Механиз подписок PUS-SUB

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

Одни клиенты подписываются на определенные каналы используя команду SUBSCRIBE имя_канала

Другие клиенты могут отправлять сообщения в этот канал используя команду PUBLISH имя_канала значение

Допустим один клиент подписывается на канал

Другой клиент что то отправляет в этот канал

И в этот момент первый клиент получит это сообщение

Основы применение Redis в Python

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

Кратко рассмотрим использование Redis в Python. Для этого первым делом загрузим библиотеку поддержки:

Далее подключимся к серверу

И далее можно уже начать попробовать использовать все ранее рассмотренные команды. Надеюсь они будут понятны без дополнительных пояснений:

Заключение

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

Источник

Базы данных: Redis

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

Redis — быстрая база данных вида ключ-значение, хранящая данные в памяти. Скорость работы достигается ценой надёжности хранения данных. Но об этом позже.

Данные

Redis хранит не только строки, но и кучу других типов данных: списки, множества, упорядоченные множества, словари и битмапы. Каждую пару ключ-значение можно сделать временной, задав ей ttl, тогда через заданное время запись самоуничтожится.

как узнать номер бд redis. content highvolume data collection and real time analytics using redis 29 638. как узнать номер бд redis фото. как узнать номер бд redis-content highvolume data collection and real time analytics using redis 29 638. картинка как узнать номер бд redis. картинка content highvolume data collection and real time analytics using redis 29 638.

Данные хранятся очень просто: нет ни связей, ни индексов, ничего. Если что-то нужно, придется реализовать это самим. Redis — это простой инструмент.

Хранение

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

Этого можно избежать, включив режим AOF. Тогда каждая команда от клиента сперва будет записываться в лог на диске, что позволит потом восстановить все данные. Цена за это — резкая деградация производительности: иногда скорость может упасть в 10 раз.

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

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

Еще несколько полезных вещей, которые умеет Redis.

Транзакции
Как и все остальное, реализованы просто и обеспечивают атомарное выполнение набора команд. Изоляции нет, но в Redis она и не нужна, так как Redis — однопоточное приложение, и транзакции не выполняются параллельно.

Репликация
Реализована как master-slave: на мастер можно писать и читать, слейвы — только чтение. Настраивается легко, работает безотказно.

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

Узнать больше

Redis — маленькая, но быстрая база данных для хранения данных, которые не жалко потерять: счетчики, временные данные. Сегодня ее часто можно встретить в самых разных проектах.

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

Redis — быстрая база данных вида ключ-значение, хранящая данные в памяти. Скорость работы достигается ценой надёжности хранения данных. Но об этом позже.

Данные

Redis хранит не только строки, но и кучу других типов данных: списки, множества, упорядоченные множества, словари и битмапы. Каждую пару ключ-значение можно сделать временной, задав ей ttl, тогда через заданное время запись самоуничтожится.

как узнать номер бд redis. content highvolume data collection and real time analytics using redis 29 638. как узнать номер бд redis фото. как узнать номер бд redis-content highvolume data collection and real time analytics using redis 29 638. картинка как узнать номер бд redis. картинка content highvolume data collection and real time analytics using redis 29 638.

Данные хранятся очень просто: нет ни связей, ни индексов, ничего. Если что-то нужно, придется реализовать это самим. Redis — это простой инструмент.

Хранение

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

Этого можно избежать, включив режим AOF. Тогда каждая команда от клиента сперва будет записываться в лог на диске, что позволит потом восстановить все данные. Цена за это — резкая деградация производительности: иногда скорость может упасть в 10 раз.

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

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

Еще несколько полезных вещей, которые умеет Redis.

Транзакции
Как и все остальное, реализованы просто и обеспечивают атомарное выполнение набора команд. Изоляции нет, но в Redis она и не нужна, так как Redis — однопоточное приложение, и транзакции не выполняются параллельно.

Репликация
Реализована как master-slave: на мастер можно писать и читать, слейвы — только чтение. Настраивается легко, работает безотказно.

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

Узнать больше

Redis — маленькая, но быстрая база данных для хранения данных, которые не жалко потерять: счетчики, временные данные. Сегодня ее часто можно встретить в самых разных проектах.

Источник

Управление базами данных и ключами Redis

Redis – это открытое in-memory хранилище данных типа «ключ-значение». Хранилище типа «ключ-значение» – это база данных NoSQL, где ключи служат уникальными идентификаторами связанных с ними значений. Экземпляр Redis включает в себя несколько баз данных, каждая из которых может содержать множество ключей разных типов данных. В этом мануале мы рассмотрим, как выбрать базу данных, перемещать ключи между базами, а также управлять ключами и удалять их.

Как работать с этим мануалом

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

Команды, использованные в этом мануале, были протестированы на сервере Ubuntu 18.04 и экземпляре Redis версии 4.0.9. Чтобы настроить аналогичную среду, вы можете следовать разделу 1 руководства Установка и защита Redis в Ubuntu 18.04. Мы покажем, как эти ведут себя команды в redis-cli, интерфейсе командной строки Redis. Обратите внимание, что если вы используете другой интерфейс Redis – например, Redli – то вывод некоторых команд будет отличаться.

Управление базами данных Redis

Экземпляр Redis «из коробки» поддерживает 16 логических баз данных. Эти базы данных фактически отделены друг от друга – то есть, когда вы запускаете команду в одной базе данных, это не влияет на данные, хранящиеся в других базах этого экземпляра Redis.

Базы данных Redis пронумерованы от 0 до 15. По умолчанию при подключении к экземпляру Redis вы попадаете в базу данных 0. Конечно, вы можете изменить базу данных, это делается после подключения с помощью команды select:

Если вы выбрали другую базу данных вместо 0, она будет отражена в префиксе строки redis-cli в квадратных скобках:

Чтобы заменить все данные, хранящиеся в одной базе данных, на данные, хранящиеся в другой, используйте команду swapdb. В следующем примере данные, хранящиеся в бд 6, будут заменены данными из бд 8, и все клиенты, подключенные к любой из этих баз, смогут сразу же увидеть изменения:

swapdb вернет OK, если замена прошла успешно.

Если вы хотите переместить ключ в другой экземпляр Redis, вы можете запустить команду migrate. Эта команда проверяет ключ на целевом экземпляре, а затем удаляет его с исходного экземпляра. При запуске команда migrate должна включать следующие элементы в следующем порядке:

migrate 203.0.113.0 6379 key_1 7 8000

Также команда migrate поддерживает несколько опций, которые можно указать после последнего аргумента:

Управление ключами

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

Команда rename переименует указанный ключ. Если операция выполнена успешно, она вернет ОК:

rename old_key new_key

Вы можете использовать команду randomkey для возврата случайного ключа из текущей выбранной базы данных:

Используйте команду type, чтобы определить, какой тип данных содержит определенный ключ. Вывод этой команды может быть string, list, hash, set, zset, или stream:

Если указанный ключ не существует, type вернет none.

Вы можете переместить отдельный ключ в другую базу данных в вашем экземпляре Redis с помощью команды move. Команда move принимает в качестве аргументов ключ и имя базы данных, в которую нужно переместить ключ. Например, чтобы переместить ключ key_1 в базу данных 8, вы должны выполнить следующую команду:

Команда move вернет ОК, если перемещение прошло успешно.

Удаление ключей

Чтобы удалить один или несколько ключей любого типа данных, используйте команду del, после которой укажите один или несколько ключей, которые нужно удалить:

Если удаление ключей прошло успешно, команда вернет (integer) 1. В противном случае она вернет (integer) 0.

Команда unlink выполняет функцию, аналогичную del. Только del блокирует клиента, пока сервер освобождает память, занятую ключом. Если удаляемый ключ связан с небольшим объектом, время, которое del потребуется для восстановления памяти, очень мало, и потому блокировка пройдет незаметно.

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

Команда unlink сначала оценивает стоимость освобождения памяти, занимаемой ключом. Если объем памяти маленький, то unlink работает так же, как del – временно блокируя клиента. Однако если стоимость освобождения памяти ключа высока, unlink удалит ключ асинхронно, создав другой поток и постепенно восстанавливая память в фоновом режиме, не блокируя клиента:

Поскольку команда unlink работает в фоновом режиме, для удаления ключей с вашего сервера обычно рекомендуется использовать именно ее: это позволяет уменьшить количество ошибок на клиентах (хотя del также будет хорошо работать во многих случаях).

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

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

Чтобы удалить все ключи в выбранной базе данных, используйте команду flushdb:

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

И flushdb, и flushall принимают опцию async, которая позволяет асинхронно удалять ключи в кластере. Это позволяет им функционировать аналогично команде unlink – они создают новый поток для постепенного освобождения памяти в фоновом режиме.

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

Чтобы создать резервную копию выбранной базы данных, вы можете использовать команду save:

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

Обратите внимание: если клиенты добавляют или изменяют данные во время выполнения операции bgsave, эти изменения не будут зафиксированы в снапшоте.

Вы можете отредактировать конфигурационный файл Redis, чтобы Redis автоматически сохранял снапшот (этот режим называется snapshotting или RDB) – это делается через определенный интервал времени, если в базу данных было внесено минимальное количество изменений (это называется точка сохранения). Следующие настройки точки сохранения включены в файл redis.conf по умолчанию:

С этими настройками Redis будет экспортировать снапшот базы данных в файл, определенный параметром dbfilename, каждые 900 секунд при условии, если будет изменен хотя бы 1 ключ; каждые 300 секунд, если будет изменено как минимум 10 ключей; каждые 60 секунд, если будет изменено 10000 ключей.

Команда shutdown по сути является блокирующей командой save, которая также сбрасывает все последние изменения в файл только для записи и закрывает соединение с экземпляром Redis:

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

Опять же, в ваших интересах переименовать эту команду.

Если вы не настроили ни одной точки сохранения, но по-прежнему хотите, чтобы Redis выполнял операции сохранения, добавьте параметр save в команду shutdown:

Если вы настроили хотя бы одну точку сохранения, но хотите выключить сервер Redis, ничего не сохраняя, вы можете добавить в команду аргумент nosave:

Обратите внимание: файл только для записи может со временем стать очень длинным, но вы можете настроить Redis для перезаписи файла на основе определенных переменных. Для этого нужно отредактировать файл redis.conf. Вы также можете переписать файл только для записи, выполнив команду bgrewriteaof:

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

Заключение

В этом мануале мы подробно рассмотрели ряд команд для управления базами данных и ключами.

Читайте наш следующий мануал по Redis – о том, как работать со строками.

Источник

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

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