В данной статье будут рассмотрены команды для работы со структурами данных в Redis.
Команды работы со строками:
APPEND ключ значение — Добавляет значение в конец данных, либо если такого ключа ещё нет, создаёт его.
Пример:
1 2 |
redis > APPEND name "Ilya" (integer) 4 |
DECR ключ — Уменьшает на единицу значение числа. В случае, если заданный ключ будет содержать строку, будет сгенерирована ошибка.
Пример:
1 2 3 4 |
redis > SET years:nikita "1975" OK redis > DECR years:nikita (integer) 1974 |
DECRBY ключ значение — Уменьшает числовое значение на переданное число.
Пример:
1 2 3 4 |
redis > SET cars:year "2016" OK redis > DECRBY cars:year 9 (integer) 2007 |
GET ключ — Возвращает значение ключа.
Пример:
1 2 3 4 |
redis > SET numbers:random "seven" OK redis > GET numbers:random "seven" |
GETRANGE ключ начало конец — Возвращает подстроку строкового значения.
Пример:
1 2 3 4 |
redis > SET cars:mark "Bugatti" OK redis > GETRANGE cars:mark 1 4 "ugat" |
GETSET ключ значение — Устанавливает в переданный ключ строковое значение и возвращает предыдущее.
Пример:
1 2 3 4 |
redis > SET clocks:kate "Tissot" OK redis > GETSET clocks:kate "Swatch" "Tissot" |
INCR ключ — Увеличивает на единицу значение числа. В случае, если заданный ключ содержит строку, будет вызвана ошибка.
Пример:
1 2 3 4 |
redis > SET years:andrey "1989" OK redis > INCR years:andrey (integer) 1990 |
INCRBY ключ значение — Увеличивает числовое значение на переданное число.
Пример:
1 2 3 4 |
redis > SET cars:year "2005" OK redis > INCRBY cars:year 11 (integer) 2016 |
INCRBYFLOAT ключ инкремент — Позволяет увеличивать число хранящееся в строке на число с плавающей запятой, в отличие от INCRBY, который позволяет увеличивать число только на целочисленное значение.
Пример:
1 2 3 4 |
redis > SET numbers:random "3.2" OK redis > INCRBYFLOAT numbers:random 1.8 "5" |
MGET ключ [ключ …] — Возвращает значение ключа / ключей, переданных в параметрах.
Пример:
1 2 3 4 5 6 7 8 |
redis > SET numbers:1 one OK redis > SET numbers:2 two OK redis > MGET numbers:1 numbers:2 numbers:3 "one" "two" (nil) |
MSET ключ значение [ключ значение …] — Устанавливает значение ключа / значения ключей, которые переданы в параметрах.
Пример:
1 2 3 4 5 |
redis > MSET cars:Anton Ferrari cars:Vasiliy Audi OK redis > MGET cars:Anton cars:Vasiliy 1) "Ferrari" 2) "Audi" |
MSETNX ключ значение [ключ значение …] — Устанавливает значение ключа / значение ключей, если таких ключей ещё нет в базе данных. Операция является атомарной, что означает, если хотя бы один ключ существует, то операция не установит ни один из ключей.
Пример:
1 2 3 4 5 6 7 |
redis > SET languages:Tom PL/M OK redis > MSETNX languages:Anton Limbo languages:Tom Java (integer) 0 redis > MGET languages:Anton languages:Tom 1) (nil) 2) "PL/M" |
PSETEX ключ миллисекунды значение — Записывает в ключ строковое значение и устанавливает время жизни ключа в миллисекундах.
Пример:
1 2 |
redis > PSETEX numbers:random 3000 "One" OK |
SET ключ значение — Записывает строковое значение в переданный ключ. Если ключ до этого существовал, то он будет перезаписан.
Пример:
1 2 3 4 |
redis > SET clocks:bob "CASIO" OK redis > GET clocks:bob "CASIO" |
SETEX ключ секунды значение — Записывает в ключ строковое значение и устанавливает время, через которое ключ будет уничтожен.
Пример:
1 2 |
redis > SETEX numbers:random 10 "nine" OK |
SETNX ключ значение — Записывает строковое значение, если такого ключа ещё нет в базе данных.
Пример:
1 2 3 4 |
redis > SETNX languages:random Java (integer) 1 redis > SETNX languages:random Ruby (integer) 0 |
STRLEN ключ — Возвращает длину строкового значения определённого ключа.
Пример:
1 2 3 4 |
redis > SET languages:random JOVIAL OK redis > STRLEN languages:random (integer) 6 |
Битовые операции тут не описаны.
Команды работы с хэшами:
HDEL ключ поле [поле …] — Удаляет поле / поля из ключа.
Пример:
1 2 3 4 |
redis > HMSET languages:random MATLAB "2016b (Version 9.1)" Pike "7.8.866" XL "0.1" Vala "0.32.0" Julia "0.6.0-dev" OK redis > HDEL languages:random XL (integer) 1 |
HEXISTS ключ поле — Проверяет, есть ли поле с таким именем в переданном хэше
Пример:
1 2 3 4 |
redis > HMSET languages:work TypeScript "2.1.4" Go "1.7.1" OK redis > HEXISTS languages:work Go (integer) 1 |
HGET ключ поле значение — Возвращает значение, которое ассоциировано с полем в хэше
Пример:
1 2 3 4 |
redis > HSET languages:work Rust "1.14.0" (integer) 1 redis > HSET languages:work Rust "1.14.0" |
HGETALL ключ — Возвращает все поля и значения для ассоциированного с ключом хэша
Пример:
1 2 3 4 5 6 7 |
redis > HMSET languages:home R "3.3.2" bash "4.4" OK redis > HGETALL languages:home 1) "R" 2) "3.3.2" 3) "bash" 4) "4.4" |
HINCRBY ключ поле инкремент — Увеличивает числовое значение поля, хранящегося в ключе.
Пример:
1 2 3 4 |
redis > HSET numbers:random One "1" (integer) 1 redis > HINCRBY numbers:random One 3 (integer) 4 |
HINCRBYFLOAT ключ значение инкремент — Увеличивает числовое значение поля, которое хранится в ключе, на число с плавающей запятой.
Пример:
1 2 3 4 |
redis > HSET numbers:random Two 0.8 (integer) 1 redis > HINCRBYFLOAT numbers:random Two 1.2 (integer) 2 |
HKEYS ключ — Получение всех полей указанного хэша.
Пример:
1 2 3 4 5 |
redis > HMSET cars:vadim Audi "Q7" BMW "X5" OK redis > HKEYS cars:vadim 1) "Audi" 2) "BMW" |
HLEN key — Возвращает количество полей, которые находятся в хэше
Пример:
1 2 3 4 |
redis > HMSET cars:anton Audi "A6" Nissan "Murano" Mazda "Q3" OK redis > HLEN cars:anton (integer) 3 |
HMGET ключ поле [поле …] — Получает значение поля / полей указанного хэша.
Пример:
1 2 3 4 5 6 |
redis > HMSET languages:artur Octave "4.2.0" Python "3.6.0" OK redis > HMGET languages:artur Octave Python Lua 1) "4.2.0" 2) "3.6.0" 3) (nil) |
HMSET ключ поле значение [поле значение …] — Записывает значения в поля хэша.
Пример:
1 2 3 4 5 6 |
redis > HMSET languages:bob Nemerle "0.9.3" Boo "0.9.4" Elixir "1.4.0" OK redis > HMGET languages:bob Nemerle Boo Elixir 1) "0.9.3" 2) "0.9.4" 3) "1.4.0" |
HSET ключ поле значение — Добавляет в хэш поле и значение. Если такого ключа не существовало, он будет добавлен. В случае, если такое поле в хэше уже существует, оно будет перезаписано.
Пример:
1 2 |
redis > HSET languages:work Python "3.1.3" (integer) 1 |
HSETNX ключ поле значение — Устанавливает значение поля в хэше только в том случае, если до этого оно не существовало.
Пример:
1 2 3 4 5 6 7 |
redis > HSET numbers:random five "5" (integer) 1 redis > HSETNX numbers:random ten "10" (integer) 1 redis > HMGET numbers:random five ten 1) "5" 2) "10" |
HSTRLEN ключ поле — Возвращает длину строкового значения поля определённого хэша.
Пример:
1 2 3 4 |
redis > HSET numbers:random 2 "Two" (integer) 1 redis > HSTRLEN numbers:random 2 (integer) 3 |
HVALS ключ — Возвращает все значения переданного хэша.
Пример:
1 2 3 4 5 |
redis > HMSET phones:igor iPhone "6" Nokia "3310" OK redis > HVALS phones:igor 1) "6" 2) "3310" |
Команды работы со списками:
LINDEX ключ индекс — Возвращает значение списка по заданному индексу.
Пример:
1 2 3 4 5 6 |
redis > LPUSH languages:random MIMIC COWSEL MUMPS COMIT Ruby (integer) 5 redis > LINDEX languages:random 1 "COMIT" redis > LINDEX languages:random -1 "MIMIC" |
LINSERT ключ до|после существующее_значение значение — Вставляет значение до или после уже существующего значения.
Пример:
1 2 3 4 |
redis > LPUSH languages:random BCPL Yellow SQL AWK (integer) 4 redis > LINSERT languages:random BEFORE SQL ABC (integer) 5 |
LLEN ключ — Возвращает количество значений находящихся в списке.
Пример:
1 2 3 4 |
redis > LPUSH languages:random Erlang A+ (integer) 2 redis > LLEN languages:random (integer) 2 |
LPOP ключ — Удаляет и возвращает первый элемент списка.
Пример:
1 2 3 4 |
redis > LPUSH colors:random Yellow Black Blue Purple Red (integer) 5 redis > LPOP colors:random "Red" |
LPUSH ключ значение [значение …] — Вставляет в начало списка переданные значения. Если ключ до этого не существовал, то в этом случае он будет создан.
Пример:
1 2 |
redis > LPUSH numbers:random 1456 4564536 35 46 57547 546 346 456 537 567 (integer) 10 |
LPUSHX ключ значение — Вставляет значение в начало списка, только если ключ уже существует и содержит в себе список.
Пример:
1 2 3 4 |
redis > LPUSH numbers:random 1 3 5 7 9 11 13 15 17 (integer) 9 redis > LPUSHX numbers:random 19 (integer) 10 |
LRANGE ключ старт стоп — Возвращает диапозон значений указанного списка.
Пример:
1 2 3 4 5 6 7 |
redis > LPUSH numbers:5 1 2 3 4 5 (integer) 5 redis > LRANGE numbers:5 0 3 1) "5" 2) "4" 3) "3" 4) "2" |
LREM ключ количество значение — Удаляет элементы, которые равны значению. Параметр «количество» указывает, сколько таких элементов надо удалить. Переданный 0 означает, что необходимо удалить все вхождения.
Пример:
1 2 3 4 |
redis > LPUSH numbers:random 13 13 10 2 8 7 (integer) 6 redis > LREM numbers:random 0 13 (integer) 2 |
LSET ключ индекс значение — Записывает значение по указанному индексу в список.
Пример:
1 2 3 4 |
redis > LPUSH numbers:6 1 2 3 4 5 6 (integer) 6 redis > LSET numbers:6 1 7 OK |
LTRIM ключ старт стоп — Ограничивает список значениями, которые находятся в диапозоне переданных индексов.
Пример:
1 2 3 4 5 6 |
redis > LPUSH languages:random Ratfor Java REXX AWK PostScript Tcl TypeScript PHP F Io (integer) 10 redis > LTRIM languages:random 0 5 OK redis > LLEN languages:random (integer) 6 |
RPOP ключ — Удаляет и возвращает последний элемент списка.
Пример:
1 2 3 4 |
redis > LPUSH brands:mobile Xiaomi Samsung Apple (integer) 3 redis > RPOP brands:mobile "Xiaomi" |
RPOPLPUSH источник приёмник — Удаляет из источника последний элемент и записывает его в начало списка приёмника.
Пример:
1 2 3 4 5 6 |
redis > LPUSH numbers:random 20 30 40 (integer) 3 redis > LPUSH numbers:simple 10 (integer) 1 redis > RPOPLPUSH numbers:random numbers:simple "20" |
RPUSH ключ значение [значение …] — Добавляет элементы в конец списка. Если до этого данный ключ не существовал, тогда он будет создан.
Пример:
1 2 |
redis > RPUSH brands:jeans Colins Levis (integer) 2 |
RPUSHX ключ значение — Вставляет в конец списка элемент, но только в том случае, если ключ уже создан и содержит в себе список.
Пример:
1 2 3 4 5 6 |
redis > RPUSH numbers:random 3 6 (integer) 2 redis > RPUSHX numbers:random 8 (integer) 3 redis > LLEN numbers:random (integer) 3 |
Команды работы с множествами:
SADD ключ значение [значение …] — Создаёт множество с одним или несколькими значениями.
Пример:
1 2 |
redis > SADD languages:work python pascal ruby java (integer) 4 |
SCARD ключ — Возвращает количество элементов, которые хранятся в множестве.
Пример:
1 2 3 4 |
redis > SADD peoples:names Andrey Ilya Vadim Alexander Mefodii (integer) 5 redis > SCARD peoples:names (integer) 5 |
SDIFF ключ [ключ …] — Возвращает разницу между первым множеством и остальными.
Пример:
1 2 3 4 5 6 7 8 9 10 11 |
redis > SADD digits:one 1 2 3 4 5 (integer) 5 redis > SADD digits:two 5 6 (integer) 2 redis > SADD digits:three 6 7 8 9 (integer) 4 redis > SDIFF digits:one digits:two digits:three 1) "1" 2) "2" 3) "3" 4) "4" |
SDIFFSTORE приёмник ключ [ключ …] — Записывает в приёмник те элементы, которые не совпадают с первым множеством. Для лучшего понимания смотреть SDIFF.
Пример:
1 2 3 4 5 6 7 8 |
redis > SADD cars:andrey Volvo KIA Mercedes (integer) 3 redis > SADD cars:mihail KIA Volvo BMW Cadillac Chrysler (integer) 5 redis > SDIFFSTORE cars:diff cars:andrey cars:mihail (integer) 1 redis > SMEMBERS cars:diff 1) "Mercedes" |
SINTER ключ [ключ …] — Возвращает все элементы, которые совпадают в переданных множествах.
Пример:
1 2 3 4 5 6 7 8 |
redis > SADD digits:one 10 20 30 (integer) 3 redis > SADD digits:two 20 30 40 (integer) 3 redis > SADD digits:three 30 40 (integer) 2 redis > SINTER digits:one digits:two digits:three 1) "30" |
SINTERSTORE приёмник ключ [ключ …] — Данная команда записывает в приёмник все элементы, которые совпали в множествах, переданных в параметрах.
Пример:
1 2 3 4 5 6 7 8 |
redis > SADD brands:notebook DELL Apple Sony Toshiba (integer) 4 redis > SADD brands:mobile Apple LG Samsung (integer) 3 redis > SINTERSTORE brands:common brands:notebook brands:mobile (integer) 1 redis > SMEMBERS brands:common 1) "Apple" |
SISMEMBER ключ элемент — Возвращает 1, если данный элемент присутствует в данном множестве. В ином случае будет выведен 0.
Пример:
1 2 3 4 5 6 |
redis > SADD numbers:random 1000 2000 3000 4000 5000 (integer) 5 redis > SISMEMBER numbers:random 6000 (integer) 0 redis > SISMEMBER numbers:random 3000 (integer) 1 |
SMEMBERS ключ — Возвращает все элементы множества.
Пример:
1 2 3 4 5 |
redis > SADD peoples:names Sergey Vladislav (integer) 2 redis > SMEMBERS peoples:names 1) "Sergey" 2) "Vladislav" |
SMOVE ключ_источника ключ_назначения элемент — Переносит элемент из одного множества в другое.
Пример:
1 2 3 4 5 6 7 8 9 |
redis > SADD years:one 1800 1850 1900 (integer) 3 redis > SADD years:two 2000 (integer) 1 redis > SMOVE years:one years:two 1850 (integer) 1 redis > SMEMBERS years:two 1) "1850" 2) "2000" |
SPOP ключ [количество] — Удаляет и возвращает случайный элемент или элементы (если задано количество) из множества. Аргумент «количество» доступен с версии 3.2.
Пример:
1 2 3 4 5 6 7 |
redis > SADD numbers:first 1 2 3 (integer) 3 redis > SPOP numbers:first "2" redis > SMEMBERS numbers:first 1) "1" 2) "3" |
SRANDMEMBER ключ [количество] — Возвращает случайный элемент или элементы (если указано количество) из множества. Аргумент «количество» доступен начиная с версии 2.6.
Пример:
1 2 3 4 |
redis > SADD languages:work Python Lua Caml (integer) 3 redis > SRANDMEMBER languages:work "Caml" |
SREM ключ значение [значение …] — Удаляет элементы или элементы из множества.
Пример:
1 2 3 4 |
redis > SADD languages:random Factor FALSE HTML AutoLisp (integer) 4 redis > SREM languages:random Factor AutoLisp (integer) 2 |
SUNION ключ [ключ …] — Объединяет элементы множеств.
Пример:
1 2 3 4 5 6 7 8 9 10 |
redis > SADD languages:random Perl Maple (integer) 2 redis > SADD languages:old ALGAE COMPOOL BACAIC (integer) 3 redis > SUNION languages:random languages:old 1) "BACAIC" 2) "Perl" 3) "Maple" 4) "COMPOOL" 5) "ALGAE" |
SUNIONSTORE приёмник ключ [ключ …] — Записывает в приёмник все уникальные элементы переданных множеств.
Пример:
1 2 3 4 5 6 7 8 9 10 |
redis > SADD numbers:first 5 15 (integer) 2 redis > SADD numbers:last 15 25 (integer) 2 redis > SUNIONSTORE numbers:union numbers:first numbers:last (integer) 3 redis > SMEMBERS numbers:union 1) "5" 2) "15" 3) "25" |
Команды работы с отсортированными множествами:
ZADD ключ числовое_значение элемент — Создаёт упорядоченное множество, которое сортируется по весовым коэффициентам. Не содержит дубликатов. Если элемент повторяется, то весовое значение обновляется и элемент перезаписывается в нужное место, чтобы поддерживать отсортированность.
Пример:
1 2 3 4 5 6 7 8 |
redis > ZADD languages:years 1967 XPL 1997 E 1993 Brainfuck 1999 XSLT 1989 PowerBASIC (integer) 5 redis > ZRANGE languages:years 0 -1 1) "XPL" 2) "PowerBASIC" 3) "Brainfuck" 4) "E" 5) "XSLT" |
ZCARD ключ — Возвращает количество элементов в упорядоченном множестве.
Пример:
1 2 3 4 |
redis > ZADD numbers:random 1 One 5 Five 3 Three (integer) 3 redis > ZCARD numbers:random (integer) 3 |
ZCOUNT ключ минимальное_значение максимальное_значение — Возвращает количество элементов, которые лежат в промежутке между минимальным и максимальным значением.
Пример:
1 2 3 4 |
redis > ZADD numbers:random 2 two 10 ten 7 seven (integer) 3 redis > ZCOUNT numbers:random 2 8 (integer) 2 |
ZINCRBY ключ инкремент элемент — Увеличивает весовой коэффициент элемента на переданное значение.
Пример:
1 2 3 4 |
redis > ZADD friends:andrey 1990 Mixail 1997 Nikita 1989 Bob (integer) 3 redis > ZINCRBY friends:andrey 5 Mixail "1995" |
ZRANGE ключ начальный_индекс конечный_индекс — Возвращает элементы отсортированного множества, начиная с начального индекса и заканчивая конечным.
Пример:
1 2 3 4 5 6 |
redis > ZADD languages:random 1995 PHP 2000 XL 1996 NetRexx 1999 GML 2007 LOLCODE (integer) 5 redis > ZRANGE languages:random 0 2 1) "PHP" 2) "NetRexx" 3) "GML" |
ZRANGEBYSCORE ключ минимальное_значение максимальное_значение — Возвращает все элементы, весовые коэффициенты у которых находятся между минимальным и максимальным значениями.
Пример:
1 2 3 4 5 |
redis > ZADD numbers:random 1 one 2 two 3 three 5 five (integer) 4 redis > ZRANGEBYSCORE numbers:random 1 2 1) "one" 2) "two" |
ZRANK ключ элемент — Возвращает индекс элемента. Отсчёт начинается с 0. Элемент с индексом 0 имеет самый маленький весовой коэффициент.
Пример:
1 2 3 4 |
redis > ZADD numbers:random 2 two 1 one 4 four 5 five 6 six (integer) 5 redis > ZRANK numbers:random four (integer) 2 |
ZREM ключ элемент [элемент …] — Удаляет элемент / элементы из указанного отсортированного множества.
Пример:
1 2 3 4 5 6 |
redis > ZADD languages:random 1962 MAD 1969 TUTOR 1973 COMAL 1975 Scheme 1983 C++ 1976 S 1987 HyperTalk 1987 Erlang (integer) 8 redis > ZREM languages:random COMAL C++ (integer) 2 redis > ZCARD languages:random (integer) 6 |
ZREMRANGEBYRANK ключ начальный_индекс конечный_индекс — Удаляет все элементы отсортированного множества, которые находятся между начальным и конечным индексами.
Пример:
1 2 3 4 5 6 |
redis > ZADD friends:mixail 1997 Vasya 1991 Petya 1993 Andrey 1992 Bob 1994 Tom 1990 Alexander (integer) 6 redis > ZREMRANGEBYRANK friends:mixail 0 3 (integer) 4 redis > ZCARD friends:mixail (integer) 2 |
ZREMRANGEBYSCORE ключ минимальное_значение максимальное_значение — Удаляет все элементы из отсортированного множества, весовые коэффициенты которых находятся между минимальным и максимальным значением.
Пример:
1 2 3 4 5 6 |
redis > ZADD numbers:random 1 one 3 three 2 two 5 five 7 seven 4 four 10 ten 6 six (integer) 8 redis > ZREMRANGEBYSCORE numbers:random 1 3 (integer) 3 redis > ZCARD numbers:random (integer) 5 |
ZREVRANGE ключ начальный_индекс конечный_индекс — Возвращает все элементы, которые находятся между начальным и конечным индексами. Данные для этой команды представлены в обратном порядке, от большего к меньшему.
Пример:
1 2 3 4 5 6 |
redis > ZADD languages:random 1952 COMPOOL 1963 CPL 1966 CORAL66 1976 Ratfor 1977 Red 1978 SQL (integer) 6 redis > ZREVRANGE languages:random 0 2 1) "SQL" 2) "Red" 3) "Ratfor" |
ZREVRANK ключ элемент — Выводит индекс элемента. Отсчёт начинатся с 0. Элемент с индексом 0 имеет самый большой весовой коэффициент и далее по убыванию.
Пример:
1 2 3 4 |
redis > ZADD numbers:random 1 one 3 three 2 two (integer) 3 redis > ZREVRANK numbers:random two (integer) 1 |
ZSCORE ключ элемент — Возвращает весовой коэффициент элемента.
Пример:
1 2 3 4 |
redis > ZADD numbers:random 5 five 7 seven 10 ten (integer) 3 redis > ZSCORE numbers:random ten "10" |
Для более детального описания можете обращаться к официальному сайту Redis.
Если вы заметили какие-либо неточности, пишите в комментарии.