Основные операции «ключ-значение» в Redis

RedisBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите фундаментальные операции «ключ-значение» в Redis. Мы будем использовать интерфейс командной строки redis-cli для взаимодействия с сервером Redis и выполнения базовых операций, таких как установка, получение, проверка существования, удаление и установка времени истечения срока действия ключей. К концу этой работы вы будете хорошо понимать, как использовать Redis в качестве простого хранилища данных.

Установка и извлечение пар «ключ-значение»

На этом этапе мы сосредоточимся на основных операциях установки и извлечения пар «ключ-значение» в Redis. Это фундамент использования Redis в качестве хранилища данных.

Redis хранит данные в виде пар «ключ-значение», подобно словарю. Ключ — это уникальный идентификатор, а значение — данные, связанные с этим ключом.

  1. Подключение к Redis:

    Откройте терминал в виртуальной машине LabEx. Вы должны находиться в директории ~/project. Подключитесь к серверу Redis с помощью команды redis-cli:

    redis-cli
    

    Вы должны увидеть приглашение Redis: 127.0.0.1:6379>. Это означает успешное подключение к серверу Redis.

  2. Установка пары «ключ-значение»:

    Давайте установим пару «ключ-значение» с помощью команды SET. Мы установим ключ mykey со значением myvalue.

    SET mykey myvalue
    

    Redis ответит:

    OK
    

    Это подтверждает, что пара «ключ-значение» была успешно сохранена.

  3. Получение значения ключа:

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

    GET mykey
    

    Redis ответит:

    "myvalue"
    

    Это показывает, что мы успешно извлекли значение, связанное с ключом mykey.

  4. Установка другой пары «ключ-значение»:

    Давайте установим еще одну пару с другим ключом и значением. На этот раз мы будем использовать user:1001 в качестве ключа и John в качестве значения.

    SET user:1001 John
    

    Redis ответит:

    OK
    
  5. Получение значения нового ключа:

    Теперь давайте получим значение ключа user:1001:

    GET user:1001
    

    Redis ответит:

    "John"
    

    Теперь вы успешно установили и извлекли пары «ключ-значение» в Redis.

  6. Выход из Redis CLI:

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

    exit
    

    Скриншот сессии Redis CLI

Проверка существования ключа

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

  1. Подключение к Redis:

    Подключитесь к серверу Redis с помощью команды redis-cli:

    redis-cli
    

    Вы должны увидеть приглашение Redis: 127.0.0.1:6379>.

  2. Проверка существования существующего ключа:

    На предыдущем шаге мы установили ключ mykey. Давайте проверим, существует ли он, с помощью команды EXISTS:

    EXISTS mykey
    

    Redis ответит:

    (integer) 1
    

    Ответ 1 означает, что ключ mykey существует в Redis.

  3. Проверка существования несуществующего ключа:

    Теперь давайте проверим, существует ли ключ, который мы не устанавливали. Например, проверим ключ с именем nonexistentkey:

    EXISTS nonexistentkey
    

    Redis ответит:

    (integer) 0
    

    Ответ 0 означает, что ключ nonexistentkey не существует в Redis.

  4. Выход из Redis CLI:

    Выйдите из Redis CLI, чтобы убедиться, что команды логируются:

    exit
    

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

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

  1. Подключение к Redis:

    Подключитесь к серверу Redis с помощью команды redis-cli:

    redis-cli
    

    Вы должны увидеть приглашение Redis: 127.0.0.1:6379>.

  2. Удаление существующего ключа:

    На предыдущих шагах мы установили ключ mykey. Давайте удалим его с помощью команды DEL:

    DEL mykey
    

    Redis ответит:

    (integer) 1
    

    Ответ (integer) 1 означает, что один ключ был успешно удален.

  3. Удаление несуществующего ключа:

    Давайте попробуем удалить ключ, которого не существует, например nonexistentkey:

    DEL nonexistentkey
    

    Redis ответит:

    (integer) 0
    

    Ответ (integer) 0 означает, что ни один ключ не был удален (потому что ключ не существовал).

  4. Удаление нескольких ключей:

    Команду DEL также можно использовать для удаления нескольких ключей одновременно. Давайте удалим ключ user:1001, который мы создали ранее, и также попробуем снова удалить nonexistentkey в той же команде:

    DEL user:1001 nonexistentkey
    

    Redis ответит:

    (integer) 1
    

    Ответ (integer) 1 означает, что один ключ был успешно удален (user:1001), а попытка удалить nonexistentkey была проигнорирована, так как он не существовал.

  5. Выход из Redis CLI:

    Выйдите из Redis CLI:

    exit
    

Установка времени истечения срока действия ключа

На этом этапе мы научимся устанавливать время истечения срока действия ключа в Redis, используя как команду EXPIRE, так и команду SET с параметром EX. Это полезно для автоматического удаления данных по прошествии определенного периода, например, данных сессии или временных кэшей.

  1. Подключение к Redis:

    Подключитесь к серверу Redis с помощью команды redis-cli:

    redis-cli
    

    Вы должны увидеть приглашение Redis: 127.0.0.1:6379>.

  2. Установка пары «ключ-значение» с истечением срока действия (Способ 1: SET с параметром EX):

    Redis позволяет установить пару «ключ-значение» с временем истечения срока действия одной командой с помощью параметра EX. Давайте установим ключ sessionkey со значением sessionvalue и временем жизни 15 секунд:

    SET sessionkey sessionvalue EX 15
    

    Redis ответит:

    OK
    

    Эта команда устанавливает пару «ключ-значение» и время истечения срока действия за одну операцию, что эффективнее, чем использование отдельных команд.

  3. Проверка TTL ключа, установленного с помощью EX:

    Давайте проверим оставшееся время жизни (TTL) для sessionkey:

    TTL sessionkey
    

    Redis ответит количеством секунд, оставшихся до истечения срока действия ключа (например, (integer) 14). Значение будет немного меньше 15 из-за времени, прошедшего с момента установки ключа.

  4. Установка пары «ключ-значение» (Способ 2: Использование команды EXPIRE отдельно):

    Альтернативно, вы можете сначала установить пару «ключ-значение», а затем отдельно задать время истечения срока действия. Давайте установим ключ tempkey со значением tempvalue:

    SET tempkey tempvalue
    

    Redis ответит:

    OK
    
  5. Установка времени истечения с помощью команды EXPIRE:

    Теперь давайте установим время истечения срока действия 10 секунд для tempkey с помощью команды EXPIRE:

    EXPIRE tempkey 10
    

    Redis ответит:

    (integer) 1
    

    Ответ (integer) 1 означает, что время истечения срока действия было успешно установлено.

  6. Проверка оставшегося времени жизни (TTL):

    Чтобы проверить оставшееся время жизни (TTL) для tempkey, используйте команду TTL:

    TTL tempkey
    

    Redis ответит количеством секунд, оставшихся до истечения срока действия ключа (например, (integer) 9). Значение может быть немного меньше 10 из-за времени, прошедшего с момента установки истечения срока. Если ключ не существует или у него нет срока действия, TTL вернет -2 или -1 соответственно.

  7. Выход из Redis CLI:

    Выйдите из Redis CLI:

    exit
    

Резюме

В этой лабораторной работе вы изучили фундаментальные операции «ключ-значение» в Redis с использованием интерфейса командной строки redis-cli. Вы узнали, как подключаться к серверу Redis и использовать команду SET для хранения данных в виде пар «ключ-значение». Вы также попрактиковались в извлечении значений с помощью команды GET. Кроме того, вы научились проверять существование ключей с помощью команды EXISTS, удалять ключи с помощью команды DEL и устанавливать время истечения срока действия ключей, используя как команду SET с параметром EX, так и команду EXPIRE. Команда SET с параметром EX особенно полезна, так как позволяет установить пару «ключ-значение» с временем истечения срока действия за одну эффективную операцию. Это базовые строительные блоки для использования Redis в качестве простого и эффективного хранилища данных.