Что такое Redis

Redis, или, точнее, Remote Dictionary Server , представляет собой базу данных типа «ключ-значение». В отличие от стандартных решений Redis предоставляет структуры данных в оперативной памяти, а не на диске. Он также включает такие структуры, как строки, списки, наборы строк, упорядоченные наборы строк, хэши, растровые изображения, данные, относящиеся к объектам в пространстве, а также потоки данных. Redis как база данных работает с данными в оперативной памяти, но возможен перенос данных на диски. Использование этой обширной базы данных дает пользователю множество возможностей.

Памятка Redis (cheat sheet) содержит  наиболее часто используемые команды.

Основы

BASICS
redis-server /path/redis.conf        # Запустить redis с соответствующим файлом конфигурации
redis-cli                            # Открыть приглашение redis
sudo systemctl restart redis.service # Перезапустить Redis
sudo systemctl status redis          # Проверка статуса Redis

Строки

STRINGS

APPEND key value                  # добавить значение к ключу
BITCOUNT key [start end]          # подсчитывать установленные биты в строке
SET key value                     # установить значение в ключе
SETNX key value                   # установить, если не существует значения в ключе
SETRANGE key offset value         # перезаписать часть строки в ключе, начинающемся с указанного смещения
STRLEN key                        # получить длину значения, хранящегося в ключе
MSET key value [key value …]    # установите для нескольких ключей несколько значений
MSETNX key value [key value …]  # установите для нескольких ключей несколько значений, только если ни один из ключей не существует
GET key                           # получить значение в ключе
GETRANGE key start end            # получить подстроку сохраненного значения от начальных до конечных смещений (оба включительно)
MGET key [key …]                # получить значения всех заданных ключей
INCR key                          # увеличить значение в ключе
INCRBY key increment              # увеличить целочисленное значение ключа на заданную величину
INCRBYFLOAT key increment         # увеличить значение ключа с плавающей точкой на заданную величину
DECR key                          # уменьшите целочисленное значение ключа на единицу
DECRBY key decrement              # уменьшить целочисленное значение ключа на заданное число
DEL key                           # удалить ключ
EXPIRE key 120                    # ключ будет удален через 120 секунд
TTL key                           # возвращает количество секунд до тех пор, пока ключ не будет удален



Списки

LISTS

Список - это последовательность упорядоченных значений

RPUSH key value [value …]           # поместить новое значение в конец списка
RPUSHX key value                      # добавить значение в конец списка, только если оно существует
LPUSH key value [value …]           # поместить новое значение в начало списка
LPUSHX key value                      # добавить значение в начало списка, только если оно существует
LRANGE key start stop                 # указать подмножество списка
LINDEX key index                      # получить элемент из списка по его индексу
LINSERT key BEFORE|AFTER pivot value  # вставить элемент до или после другого элемента в списке
LLEN key                              # возвращает текущую длину списка
LPOP key                              # удалить первый элемент из списка и возвращает его
LSET key index value                  # задает значение элемента в списке по его индексу
LREM key number_of_occurrences value  # удалить вхождения значения, если список, хранящийся в ключе
LTRIM key start stop                  # обрезать список до указанного диапазона
RPOP key                              # удалить последний элемент из списка и возвращает его
RPOPLPUSH source destination          # удалить последний элемент в списке, добавьте его в другой список и верните его
BLPOP key [key …] timeout           # удалить и получить первый элемент в списке или заблокировать до тех пор, пока один из них не станет доступным
BRPOP key [key …] timeout           # удалить и получить последний элемент в списке или заблокировать до тех пор, пока один из них не станет доступным

Наборы

SETS

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

SADD key member [member …]     # добавить заданное значение в набор
SCARD key                        # получить количество участников в наборе
SREM key member [member …]     # удалить заданное значение из набора
SISMEMBER myset value            # проверить, находится ли заданное значение в наборе.
SMEMBERS myset                   # возвращает список всех членов этого набора
SUNION key [key …]             # комбинирует два или более наборов и возвращает список всех элементов
SINTER key [key …]             # пересечение нескольких множеств
SMOVE source destination member  # переместить элемент из одного набора в другой
SPOP key [count]                 # удаление и возврат одного или нескольких случайных элементов из набора

Отсортированный набор

SORTED SETS

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

ZADD key [NX|XX] [CH] [INCR] score member [score member …]  # добавить один или несколько элементов в отсортированный набор или обновите его оценку, если он уже существует

ZCARD key                           # получить количество элементов в отсортированном наборе
ZCOUNT key min max                  # подсчитать элементы в отсортированном наборе с оценками в пределах заданных значений
ZINCRBY key increment member        # увеличить количество баллов участника в отсортированном наборе
ZRANGE key start stop [WITHSCORES]  # возвращает подмножество отсортированного набора
ZRANK key member                    # определение индекса элемента в отсортированном наборе
ZREM key member [member …]        # удалить один или несколько элементов из отсортированного набора
ZREMRANGEBYRANK key start stop      # удалить все элементы в отсортированном наборе в пределах заданных индексов
ZREMRANGEBYSCORE key min max        # удалить все элементы в отсортированном наборе по индексу с оценками, упорядоченными от высокого к низкому
ZSCORE key member                   # получить оценку, связанную с данным mmeber, в отсортированном наборе

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]  # возвращает диапазон элементов в отсортированном наборе по количеству баллов

Хэши

HASHES

Хэши - это сопоставления между строковыми полями и строковыми значениями, поэтому они являются идеальным типом данных для представления объектов.

HGET key field          # получить значение хэш-поля
HGETALL key             # получить все поля и значения в хэше
HSET key field value    # задать строковое значение хэш-поля
HSETNX key field value  # установить строковое значение хэш-поля, только если это поле не существует

HMSET key field value [field value …]  # установить несколько полей одновременно

HINCRBY key field increment  # увеличить значение в хэше на X
HDEL key field [field …]   # удалить одно или несколько хэш-полей
HEXISTS key field            # определить, существует ли хэш-поле
HKEYS key                    # получить все поля в хэше
HLEN key                     # получить количество полей в хэше
HSTRLEN key field            # получить длину значения хэш-поля
HVALS key                    # получить все значения в хэше

HYPERLOGLOG

HYPERLOGLOG

HyperLogLog использует рандомизацию, чтобы обеспечить приблизительное количество уникальных элементов в наборе, используя только постоянный и небольшой объем памяти

PFADD key element [element …]  # добавить указанные элементы в указанный HyperLogLog
PFCOUNT key [key …]            # возвращает приблизительную мощность набора (ов), наблюдаемого HyperLogLog в ключе

PFMERGE destkey sourcekey [sourcekey …]  # объединить N гиперлогов в один

Публикация и подписка

PUBLICATION & SUBSCRIPTION
PSUBSCRIBE pattern [pattern …]             # прослушивание сообщений, опубликованных на каналах, соответствующих заданным шаблонам
PUBSUB subcommand [argument [argument …]]  # проверка состояния подсистемы Pub/Sub
PUBLISH channel message                      # отправить сообщение на канал
PUNSUBSCRIBE [pattern [pattern …]]         # прекратить прослушивание сообщений, отправленных на каналы, соответствующие заданным шаблонам
SUBSCRIBE channel [channel …]              # прослушивание сообщений, опубликованных на заданных каналах
UNSUBSCRIBE [channel [channel …]]          # прекратить прослушивание сообщений, отправленных на указанные каналы
Читать по теме
Интересные статьи