Статьи по Redis

Redis – первые шаги. Что это такое и как начать работать с этой базой данных.

В этой статье мы разберем что такое Redis и как начать с ней работать.

Что такое Redis?

Как сказано в Википедии, Redis – это noSQL база данных, основанная на хранении данных в хэшированных (ключ/значение) таблицах.

Установка Redis

Вы можете загрузить и установить Redis на свой компьютер под управлением Windows, Linux или Mac здесь. В данном руководстве мы будем использовать Docker, так как это быстрее и проще. Для этого урока вам не нужно обладать знаниями о Docker, достаточно установить его и выполнить описанные ниже шаги:

Чтобы использовать Redis из Docker, сначала нужно загрузить образ, для этого запускаем следующую команду:

docker pull redis:latest
Code language: CSS (css)

Как только это будет сделано, мы поднимем контейнер с помощью следующей команды:

docker run --rm -p 6379:6379 --name testredis redis
Code language: CSS (css)

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

Теперь нам просто нужно создать новую вкладку в терминале и запустить следующую команду для доступа к консоли Redis:

docker exec -it testredis redis-cli

Сохранение и чтение данных

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

set <ключ> <значение>
Code language: HTML, XML (xml)

Пример

set name Ивананн
Code language: JavaScript (javascript)

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

set data "Привет мир" set "Привет мир" data
Code language: PHP (php)

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

Свойства ключей и значений

Ключи и значения всегда будут храниться в виде строк.

Максимальный размер обоих может составлять 512 МБ.

Рекомендуется, чтобы при создании ключей с несколькими значениями данных они разделялись двоеточием. Пример: posts:1:title.

Вы можете создать максимум 2^32 ключей (4 миллиарда).

Для извлечения ранее сохраненных значений нам достаточно использовать команду get и имя ключа:

get name
Code language: JavaScript (javascript)

В результате будет возвращено Иван – данные, которые мы сохранили ранее.

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

Когда мы создаем ключ, мы можем добавить дополнительные параметры для изменения его функциональности, это параметры NX и XX.

Если мы добавим в конце параметр NX, это приведет к тому, что если запись уже существует, она не будет перезаписана.

set <имя-ключа> <имя-значения-> NX
Code language: HTML, XML (xml)

Если мы хотим перезаписать значение только в том случае, когда ключ уже существует, мы используем параметр XX. Если ключ не существует, он не будет создан.

set <имя-ключа> <имя-значения-> XX
Code language: HTML, XML (xml)

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

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

del <имя-ключа1> <имя-ключа2> <имя-ключа3> и т.д.
Code language: HTML, XML (xml)

Время жизни ключа

Когда мы устанавливаем ключ, у нас есть возможность указать ему время жизни. Это можно сделать с помощью команды EX для определения времени в секундах и PX для определения его в миллисекундах.

set <имя-ключа> <данные> EX 10
Code language: HTML, XML (xml)

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

Если мы хотим реализовать это для миллисекунд, мы сделаем это так::

set <имя-ключа> <данные> PX 10
Code language: HTML, XML (xml)

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

expire <имя-ключа> 10
Code language: HTML, XML (xml)

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

persist <имя-ключа>
Code language: HTML, XML (xml)

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

ttl <имя-ключа>
Code language: HTML, XML (xml)

Поиск в Redis с помощью SCAN

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

scan 0 match test* count 3

Первый параметр, который мы передаем, это номер страницы, в данном случае нам нужна первая страница, поэтому мы передаем число 0. Для поиска по слову мы сначала вводим match, а затем регулярное выражение, в данном случае test*, потому что нам нужны все ключи, начинающиеся со слова test. В конце мы добавляем счетчик, чтобы ограничить ответ 3 результатами. Если мы хотим увидеть следующие три результата, мы должны изменить положение курсора или страницы на следующий номер, в данном случае 1:

scan 1 match test* count 3

Заключение

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

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

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