
Основы работы с базами данных Redis - как работает интерфейс командной строки Redis, общие команды
Redis - популярная in-memory база данных , которая используется во многих проектах и может выполнять различные задачи, такие как кэширование, ограничение скорости, хранение сессий и т.д.
В этомй статье мы познакомимся, как можено использовать Redis в качестве базы данных в памяти, почему стоит использовать Redis, и, наконец, мы обсудим несколько важных функций базы данных. Давайте начнем.
Что такое in-memory базы данных.
Традиционные базы данных хранят часть базы данных (обычно «горячие» или часто используемые индексы) в памяти для более быстрого доступа, а остальную часть базы данных - на диске.
Redis, с другой стороны, уделяет большое внимание задержке и быстрому извлечению и хранению данных. Таким образом, он полностью работает с памятью (RAM), а не с запоминающими устройствами (SSD / HDD). Скорость важна!
Redis - это база данных типа "ключ-значение". Но не позволяйте этому ввести вас в заблуждение, думая, что Redis это простая база данных. Redis предоставляет огромный функционал по хранению, извлечению и обработке данных.
Зачем нужен Redis?
Вы можете использовать Redis по различным причинам. Но есть три основные причины, почему его стоит использовать:
- Вы создаете приложение, в котором хотите сделать уровень кода без сохранения состояния. Почему? - Потому что, если ваш код не имеет состояния, он масштабируется по горизонтали. Следовательно, вы можете использовать Redis в качестве центральной системы хранения и позволить вашему коду обрабатывать только логику.
- Вы создаете приложение, в котором нескольким приложениям может потребоваться обмен данными. Redis позволяет нескольким отключенным / слабо связанным службам совместно использовать общее пространство памяти.
- Вам необходим быстрый доступ к части данных Вашего приложения
Основы Redis
Redis относительно прост в освоении, так как вам нужно знать всего лишь несколько команд. В следующих разделах мы рассмотрим несколько основных концепций Redis и некоторые полезные общие команды.
Redis CLI
Redis имеет CLI (Command Line Interface), который является версией командной строки REPL. Все, что вы напишете, будет обработано через redis-cli.
На изображении выше показано, как выполнить простой PING или hello world в Redis
Базовые команды Redis
Вот несколько часто используемых команд в Redis, которые помогут вам узнать больше о том, как это работает:
SET
Комманда SET позволяет установить значение ключа в Redis.
SET name "it-junior"
Это команда устанавливает ключ "name" и сохраняет под этим ключем значение "it-junior".
GET
Команда GET позволяет получить значение по указанному ключу.
GET name
Эта команда вернет строку «it-junior», как мы установили выше.
SETNX (SET IF NOT EXIST)
Этот команда создаст ключ и установит значение, только если ключ не существует. У этой команды есть несколько вариантов использования, включая предотвращение случайной перезаписи значения ключа, который может уже присутствовать.
Вот как это работает:
SET key1 value1
SETNX key1 value2
SETNX key2 value2
После выполнения этого примера ваш key1 будет иметь значение value1 и key2 как value2. Это связано с тем, что вторая команда не будет иметь никакого эффекта, поскольку key1 уже присутствует.
MSET (MULTI SET)
Комманда MSET похожа на SET, но позволяет установить несколько ключей вместе в одной команде. Вот как это работает:
MSET key1 "value1" key2 "value2" key3 "value3"
Мы использовали key1, key2 и key3 в качестве ключей, а value1, value2 и value3 в качестве значений, которые будут сохранены под этими ключами. Но на самом деле, когда вы пишете такой код, легко потерять из виду, что является ключом, а что значением в такой длинной команде.
MGET (MULTI GET)
MGET похож на GET, но может возвращать сразу несколько значений, например:
MGET key1 key2 key3 key4
Redis четыре значения в виде массива: value1, value2, value3 и null. Мы получили key4 как null, потому что мы никогда его не устанавливали.
DEL
Эта команда удаляет ключ и значение которое хранилось по этому ключу.
SET key value
GET key # gives you "value"
DEL key
GET key # null
INCR и DECR
Вы можете использовать эти две команды для увеличения или уменьшения значения по ключу, если хранимое значение является числом.
Они очень полезны, и вы будете их часто использовать, потому что Redis может выполнять две операции как одну - GET key и SET key to key + 1.
SET favNum 10
INCR favNum # 11
INCR favNum # 12
DECR favNum # 11
EXPIRE
Команда EXPIRE используется для установки таймера истечения срока действия ключа. Технически это не таймер, а отметка времени уничтожения, после которой ключ всегда будет возвращать null , если он не будет установлен снова.
SET mykey 100
EXPIRE mykey 10
GET mykey # 100
# после 10 секунд
GET mykey # null
EXPIRE использует немного больше памяти для хранения этого ключа в целом (потому что теперь вы также должны сохранить, когда истечет срок действия этого ключа). Но вы, вероятно, никогда не будете заботиться об этих накладных расходах.
TTL
Эта команда может использоваться, чтобы узнать, срок жизни ключа.
SET myvar 123
TTL myvar # -1
TTL somethingelse # -2
EXPIRE myvar 5
# подождите 2 секунды
TTL myvar # вернет 3
# еще пару секунд
GET myvar # null
TTL myvar # -2
Итак, что мы можем узнать из этого кода?
- TTL вернет -1, если ключ существует, но не имеет срока действия.
- TTL вернет -2, если ключ не существует
- TTL вернет время жизни в секундах, если ключ существует и еще не истек
SETEX (SET AND EXPIRE )
Вы можете объединить SET и EXPIRE, используя команду SETEX.
SETEX key 10 value
В этом примере ключ - «key», значение - «value», а время жизни (TTL) - 10. Этот ключ будет сброшен через 10 секунд.
Теперь, когда у вас есть фундаментальные знания об основных командах Redis и о том, как работает интерфейс командной строки
Оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи