Datové typy Redisu

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"

Zdroj: tutorialspoint.com/redis/redis_data_types.htm

Napsat komentář