Redis podporuje 5 datových typů.
- Strings (textové řetězce) – posloupnost bytů
- Hashes (heše) – kolekce hodnot klíč-hodnota
- Lists (seznamy) – seznamy řetězců seřazené podle pořadí vložení
- Sets (množiny) – neseřazená kolekce řetězců, každý řetězec je jedinečný
- Sorted Sets (seřazená množina) – seřazená, neopakující se kolekce řetězců
Strings
127.0.0.1:6379> set string-key-1 "string-value-1" OK 127.0.0.1:6379> set string-key-2 "string-value-2" OK 127.0.0.1:6379> get string-key-1 "string-value-1"
Hashes
Jelikož je to kolekce hodnot klíč-hodnota, je třeba vzdy zadat klíč a hodnotu. V prvním příkaze jsem zadal pouze klíč (key-2
). Proto se vypsala chyba ERR wrong number of arguments for HMSET
.
127.0.0.1:6379> hmset hash-key-1 key-1 value-1 key-2 (error) ERR wrong number of arguments for HMSET 127.0.0.1:6379> hmset hash-key-1 key-1 value-1 key-2 value-2 OK 127.0.0.1:6379> hmset hash-key-2 key-1 value-1 key-2 value-2 OK 127.0.0.1:6379> hgetall hash-key-1 1) "key-1" 2) "value-1" 3) "key-2" 4) "value-2"
Lists
127.0.0.1:6379> lpush list-key-1 value-1 value-2 value-3 (integer) 3 127.0.0.1:6379> lpush list-key-2 value-1 value-2 value-3 (integer) 3 127.0.0.1:6379> lrange list-key-1 (error) ERR wrong number of arguments for 'lrange' command 127.0.0.1:6379> lrange list-key-1 0 5 1) "value-3" 2) "value-2" 3) "value-1" 127.0.0.1:6379> lrange list-key-1 1 2 1) "value-2" 2) "value-1" 127.0.0.1:6379> lrange list-key-1 2 (error) ERR wrong number of arguments for 'lrange' command 127.0.0.1:6379> lrange list-key-1 2 2 1) "value-1"
Sets
Jedná se o množinu, čili vložení více stejných hodnot má za následek, že daná hodnota bude v množině pouze jednou. V příkladu jsem value-1
vložil do množiny set-key-1
dvakrát, ale jak je vidět ve výpise, je tam pouze jednou. Také si všimněte, že hodnody jsou seřazeny náhodně.
127.0.0.1:6379> sadd set-key-1 value-1 (integer) 1 127.0.0.1:6379> sadd set-key-1 value-2 (integer) 1 127.0.0.1:6379> sadd set-key-1 value-3 (integer) 1 127.0.0.1:6379> sadd set-key-1 value-1 (integer) 0 127.0.0.1:6379> sadd set-key-2 value-1 (integer) 1 127.0.0.1:6379> sadd set-key-2 value-2 (integer) 1 127.0.0.1:6379> smembers set-key-1 1) "value-3" 2) "value-1" 3) "value-2"
Sorted Sets
Totéž jako set, ale hodnoty jsou seřazeny. Řazení je podle skóre.
127.0.0.1:6379> zadd sset-key-1 0 value-1 (integer) 1 127.0.0.1:6379> zadd sset-key-1 0 value-2 (integer) 1 127.0.0.1:6379> zadd sset-key-1 0 value-3 (integer) 1 127.0.0.1:6379> zadd sset-key-1 0 value-4 (integer) 1 127.0.0.1:6379> zrangebyscore sset-key-1 0 100 1) "value-1" 2) "value-2" 3) "value-3" 4) "value-4" 127.0.0.1:6379> zrangebyscore sset-key-1 1 10 (empty list or set) 127.0.0.1:6379> zrangebyscore sset-key-1 0 1 1) "value-1" 2) "value-2" 3) "value-3" 4) "value-4" 127.0.0.1:6379> zadd sset-key-2 10 value-1 (integer) 1 127.0.0.1:6379> zadd sset-key-2 1 value-2 (integer) 1 127.0.0.1:6379> zadd sset-key-2 100 value-3 (integer) 1 127.0.0.1:6379> zrangebyscore sset-key-2 0 1000 1) "value-2" 2) "value-1" 3) "value-3" 127.0.0.1:6379> zrangebyscore sset-key-2 5 15 1) "value-1" 127.0.0.1:6379> zrangebyscore sset-key-2 5 100 1) "value-1" 2) "value-3"
Pokud je skóre stejné, řadí se lexikálně (viz poslední dva příkazy).
127.0.0.1:6379> zrangebyscore sset-key-1 0 1 1) "value-1" 2) "value-2" 3) "value-3" 4) "value-4" 127.0.0.1:6379> zrangebyscore sset-key-1 0 1 1) "value-1" 2) "value-2" 3) "value-3" 4) "value-4" 127.0.0.1:6379> zrangebyscore sset-key-1 0 1 1) "value-1" 2) "value-2" 3) "value-3" 4) "value-4" 127.0.0.1:6379> zadd sset-key-1 0 value-0 (integer) 1 127.0.0.1:6379> zrangebyscore sset-key-1 0 1 1) "value-0" 2) "value-1" 3) "value-2" 4) "value-3" 5) "value-4"