Перейти к содержимому

Операции со строками

В Managed Valkey все управление строками выполняется командами Valkey. С полным списком команд Valkey вы можете ознакомиться в официальной документации Valkey.

Обратите внимание, что в Managed Valkey некоторые команды Valkey недоступны.

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

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Убедитесь, что ключ имеет строковое значение.

  5. Выполните команду:

    text
    SET <имя ключа> <значение> [EX <секунды> | PX <миллисекунды> | EXAT <метка времени в секундах> | PXAT <метка времени в миллисекундах>] [NX | XX | KEEPTTL] [GET]

    В команде:

    • EX <секунды> — установить срок жизни в секундах.
    • PX <миллисекунды> — установить срок жизни в миллисекундах.
    • EXAT <метка времени в секундах> — установить срок жизни до метки времени в секундах.
    • PXAT <метка времени в миллисекундах> — установить срок жизни до метки времени в миллисекундах.
    • NX — записать значение, только если ключ не существует.
    • XX — записать значение, только если ключ существует.
    • KEEPTTL — сохранить текущий срок жизни ключа.
    • GET — вернуть предыдущее значение ключа.

    При успешной записи вернется ответ OK. Если параметр GET не указан, при успешной записи вернется OK, при невыполнении условий NX или XX вернется значение nil. Если параметр GET указан, вернется прежнее строковое значение или, если ключ прежде отсутствовал — nil. Если предыдущее значение — нестроковое, вернется ошибка. При успешной записи, если не указан параметр KEEPTTL, прежний TTL будет сброшен.

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

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    GET <имя ключа>

    Команда вернет значение ключа. Если ключ не существует, команда вернет значение nil. Если ключ содержит значение не строкового типа, команда вернет ошибку.

Чтобы записать значения нескольких ключей за одну операцию, используйте команду MSET.

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    MSET <имя ключа 1> <значение 1> [<имя ключа 2> <значение 2> ...]

    При успешном выполнении вернется ответ OK. Команда перезапишет значения всех указанных ключей за одну операцию.

Чтобы прочитать значения нескольких ключей за одну операцию, используйте команду MGET.

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    MGET <имя ключа 1> [<имя ключа 2> ...]

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

Дописать строковое значение ключа в конец строки

Заголовок раздела «Дописать строковое значение ключа в конец строки»

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

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    APPEND <имя ключа> <значение>

    Если ключ существует, значение допишется в конец строки. Если ключ не существует, команда создаст его и запишет указанное значение. Вернется длина строки после операции. Если ключ содержит значение не строкового типа, команда вернет ошибку.

Для получения длины строки используйте команду STRLEN.

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    STRLEN <имя ключа>

    Команда вернет длину строки в байтах. Если ключ не существует, вернется 0. Если ключ содержит значение не строкового типа, команда вернет ошибку.

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

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    GETRANGE <имя ключа> <начало> <конец>

    В команде <начало>, <конец> — индексы начала и конца подстроки. Включаются обе границы. Индексы могут быть отрицательными: −1 — последний символ, −2 — предпоследний символ и так далее.

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

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

  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните команду:

    text
    SETRANGE <имя ключа> <смещение> <значение>

    В команде:

    • <смещение> — позиция, с которой начинается замена;
    • <значение> — строка, которой заменяется часть исходной строки.

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

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

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

  • INCR — увеличивает значение на 1;
  • INCRBY — увеличивает значение на указанный шаг;
  • INCRBYFLOAT — увеличивает число с плавающей точкой.
  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните нужную команду:

    • INCR
    • INCRBY
    • INCRBYFLOAT
    text
    INCR <имя ключа>

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

    В командах <шаг> — значение, на которое нужно увеличить или уменьшить число.

    Если ключ не существует, он будет создан со значением 0 перед выполнением операции. Если значение ключа не является числом, команда вернет ошибку. Если ключ содержит значение не строкового типа, команда вернет ошибку. Команда вернет новое значение ключа после увеличения.

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

  • DECR — уменьшает значение на 1;
  • DECRBY — уменьшает значение на указанный шаг;
  • INCRBYFLOAT — уменьшает число с плавающей точкой.
  1. Подключитесь к кластеру.

  2. Переключитесь на нужную базу данных.

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

  4. Выполните нужную команду:

    • DECR
    • DECRBY
    • INCRBYFLOAT
    text
    DECR <имя ключа>

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

    В командах <шаг> — значение, на которое нужно увеличить или уменьшить число.

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