Типы данных Redis
Строки (strings)
Списки (lists)
Множества (sets)
Хеш-таблицы (hashes)
Упорядоченные множества (sorted sets)
Создание, выборка, модификация, удаление и базовая информация об объектах.
set test:1:string "my binary safe string"
get test:1:string
getset test:1:string "other value"
type test:1:string
set test:1:value "487"
rename test:1:value test:1:value
exists test:1:vlaue
exists test:1:value
keys test:1:*
del test:1:value
keys test:1:*
Время жизни объекта.
ttl test:1:string
(integer) -1
expire test:1:string 6000
(integer) 1
ttl test:1:string
(integer) 5997
Транзакции.
Для реализации транзакций в Redis используются следующие основные команды:
MULTI — начать запись команд для транзакции.
EXEC — выполнить записанные команды.
DISCARD — удалить все записанные команды.
WATCH — команда, выполняется в случае, если другие клиенты не изменили значение переменной. Иначе EXEC не выполнит записанные команды.
multi
OK
set test:1:trValue "1"
QUEUED
incr test:1:trValue
QUEUED
decr test:1:trValue
QUEUED
exec
1) OK
Строковые операции.
set test:1:string "hello"
OK
append test:1:string " world!"
(integer) 12
get test:1:string
"hello world!"
strlen test:1:string
(integer) 12
getrange test:1:string 6 10
"world"
setrange test:1:string 6 "habrahabr!"
(integer) 16
get test:1:string
"hello habrahabr!"
Операции над числами.
set test:1:int 1
OK
incr test:1:int
(integer) 2
decr test:1:int
(integer) 1
incrby test:1:int 20
(integer) 21
decrby test:1:int 15
(integer) 6
Списки
rpush test:1:message "Hello!"
rpush test:1:message "My name"
rpush test:1:message "is Alex"
lrange test:1:message 0 2
llen test:1:message
lpop test:1:message
lpop test:1:message
llen test:1:message
Множества, упорядоченные множества
sadd test:1:fruits "banana"
sadd test:1:fruits "apple"
sadd test:1:fruits "strawberry"
sadd test:1:yellowThings "banana"
sadd test:1:yellowThings "apple"
sadd test:1:redThings "strawberry"
scard test:1:fruits
sdiff test:1:fruits test:1:yellowThings
sdiffstore test:1:noYellowFruits test:1:fruits test:1:yellowThings
sinter test:1:yellowThings test:1:fruits
1) "banana"
2) "apple"
sismember test:1:fruits "banana"
sismember test:1:fruits "tomato"
smembers test:1:noYellowFruits
smove test:1:yellowThings test:1:redThings "apple"
smembers test:1:redThings
1) "strawberry"
2) "apple"
spop test:1:redThings
"apple"
srandmember test:1:fruits
"apple"
srem test:1:fruits "banana"
sunion test:1:yellowThings test:1:redThings
1) "strawberry"
2) "banana"
sunionstore test:1:allThings test:1:yellowThings test:1:redThings
smembers test:1:allThings
1) "strawberry"
2) "banana"
Создать упорядоченное множество
zadd hackers 1953 "Richard Stallman"
(integer) 1
zadd hackers 1940 "Alan Kay"
(integer) 1
zadd hackers 1965 "Yukihiro Matsumoto"
(integer) 1
zadd hackers 1916 "Claude Shannon"
(integer) 1
zadd hackers 1969 "Linus Torvalds"
(integer) 1
zadd hackers 1912 "Alan Turing"
(integer) 1
zrange hackers 0 -1
1) "Alan Turing"
2) "Claude Shannon"
3) "Alan Kay"
4) "Richard Stallman"
5) "Yukihiro Matsumoto"
6) "Linus Torvalds"
zrevrange hackers 0 -1
1) "Linus Torvalds"
2) "Yukihiro Matsumoto"
3) "Richard Stallman"
4) "Alan Kay"
5) "Claude Shannon"
6) "Alan Turing"
zrangebyscore hackers -inf 1950
1) "Alan Turing"
2) "Claude Shannon"
3) "Alan Kay"
zremrangebyscore hackers 1940 1960
(integer) 2
zrange hackers 0 -1
1) "Alan Turing"
2) "Claude Shannon"
3) "Yukihiro Matsumoto"
4) "Linus Torvalds"
Хеш-таблицы
hset users:1 name "Andrew"
(integer) 1
hset users:1 email "andrew@example.com"
(integer) 1
hkeys users:1
1) "name"
2) "email"
hvals users:1
1) "Andrew"
2) "andrew@example.com"
hgetall users:1
1) "name"
2) "Andrew"
3) "email"
4) "andrew@example.com"
hset users:1 test 1
(integer) 1
hincrby users:1 test 123
(integer) 124
hvals users:1
1) "Andrew"
2) "andrew@example.com"
3) "124"
hdel users:1 test
(integer) 1
hvals users:1
1) "Andrew"
2) "andrew@example.com"