Управление строками в Redis

Redis – это открытое in-memory хранилище данных типа «ключ-значение».

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

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

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

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

Создание строк

Ключи, содержащие строки, могут содержать только одно значение; нельзя хранить более одной строки в одном ключе. Однако строки в Redis являются бинарно-безопасными – то есть строка Redis может содержать любые данные, от буквенно-цифровых символов до изображений JPEG. Единственное ограничение – длина строки, она не должна превышать 512 МБ.

Чтобы создать строку, используйте команду set. Например, следующая команда set создает ключ key_Welcome1, который содержит строку «Howdy»:

set key_Welcome1 "Howdy"
OK

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

mset key_Welcome2 "there" key_Welcome3 "partners,"

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

append key_Welcome4 "welcome to Texas"

Если строка была создана успешно, append выведет целое число, равное количеству символов в строке:

(integer) 16

Обратите внимание: команду append также можно использовать для изменения содержимого строк. Подробнее мы поговорим об этом чуть позже.

Извлечение строк

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

get key_Welcome1
"Howdy"

Чтобы извлечь несколько строк, используйте mget:

mget key_Welcome1 key_Welcome2 key_Welcome3 key_Welcome4
1) "Howdy"
2) "there"
3) "partners,"
4) "welcome to Texas"

Если какой-либо из заданных ключей не содержит строковое значение или не существует, команда mget вернет nil.

Управление строками

Если строка состоит из целого числа, вы можете запустить команду incr, чтобы увеличить ее значение на единицу:

set key_1 3
incr key_1
(integer) 4

Аналогичным образом команду incrby можно использовать, чтобы увеличить числовое значение строки на определенный шаг:

incrby key_1 16
(integer) 20

Команды decr и decrby работают точно так же, только они уменьшают целое число, хранящееся в числовой строке:

decr key_1
(integer) 19
decrby key_1 16
(integer) 3

Если буквенная строка уже существует, append добавит значение в конец существующего значения и вернет новую длину строки. К примеру, следующая команда добавляет «, y’all» к строке, содержащейся в ключе key_Welcome4, поэтому теперь строка будет выглядеть так: «welcome to Texas, y’all».

append key_Welcome4 ", y'all"
(integer) 15

Вы также можете вставить целые числа в строку, содержащую числовое значение. В следующем примере 45 вставляется в конец значения 3 (это целое число содержится в key_1), поэтому в результате получится 345. В этом случае append также возвратит новую длину строки, а не ее значение:

append key_1 45
(integer) 3

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

Заключение

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

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

Tags: , ,