English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis 数据類型

Redis supporta cinque tipi di dati: stringa (stringa), hash (hash), elenco (lista), set (insieme) e zset (insieme ordinato: insieme ordinato).

Stringa(字符串)

La stringa è il tipo più fondamentale di redis, puoi intenderla come lo stesso tipo di Memcached, una chiave corrisponde a un valore.

Il tipo stringa è binario sicuro. Significa che la stringa redis può contenere qualsiasi tipo di dati. Ad esempio, immagini jpg o oggetti serializzati.

Il tipo stringa è il tipo di dati più fondamentale di Redis, il valore del tipo stringa può memorizzare fino a 512MB.

在線示例

redis 127.0.0.1:6379> SET w3codebox "Sito di tutorial di base"
OK
redis 127.0.0.1:6379> GET w3codebox
"Sito di tutorial di base"

Nell'esempio sopra abbiamo utilizzato il comando SET e GET Comando. La chiave è w3codebox, il valore corrispondente è Sito di tutorial di base.

Attenzione:Una chiave può memorizzare al massimo 512MB.

Hash(哈希)

Redis hash è una raccolta di coppie chiave-valore (key=>value).

Redis hash è una tabella di mappatura tra stringa e valore del tipo field, hash è particolarmente adatto per memorizzare oggetti.

在線示例

DEL w3codebox utilizzato per eliminare la chiave utilizzata nel test precedente, altrimenti verrà generato un errore:(error) WRONGTYPE Operation against a key holding the wrong kind of value

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> HMSET w3codebox field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET w3codebox field1
"Hello"
redis 127.0.0.1:6379> HGET w3codebox field2
"World"

Nell'esempio abbiamo utilizzato Redis HMSET, HGET ,Comando HMSET Sono stati impostati due field=>value pair, HGET recupera corrispondente field corrispondente value.

Ogni hash può memorizzare 232 -1 coppia chiave-valore (più di 4 miliardi).

List (elenco)

La lista Redis è una lista di stringhe semplice, ordinata per ordine di inserimento. Puoi aggiungere un elemento all'inizio (sinistra) o alla fine (destra) della lista.

在線示例

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> lpush w3codebox redis
(integer) 1
redis 127.0.0.1:6379> lpush w3codebox mongodb
(integer) 2
redis 127.0.0.1:6379> lpush w3codebox rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange w3codebox 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

L'elenco può memorizzare al massimo 232 - 1 elemento (4294967295, ogni elenco può memorizzare più di 4 miliardi).

Set (insieme)

Redis Set è una raccolta non ordinata di tipo stringa.

Le collection sono implementate tramite tabella hash, quindi la complessità di aggiungere, eliminare e cercare è O(1).

Comando sadd

Aggiungi un elemento stringa alla集合 associata a key, restituisce 1 con successo, se l'elemento è già nella集合 restituisce 0.

sadd key member

在線示例

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> sadd w3codebox redis
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox mongodb
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd w3codebox rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers w3codebox
1) "redis"
2) "rabbitmq"
3) "mongodb"

Attenzione:Nell'esempio riportato, rabbitmq è stato aggiunto due volte, ma secondo l'unicità degli elementi all'interno dell'insieme, l'elemento inserito per secondo verrà ignorato.

集合中最大的成員數為 232  - 1(4294967295, 每個集合可存儲40多億個成員)。

zset(有序集合)

Redis zset和set一樣也是string類型的元素集合,且不允許重複的成員。

不同之處在於每個元素都會關聯一個double類型的分數。Redis正是通過分數為集合中的成員進行從小到大的排序。

zset的成員是唯一的,但分數(score)可以重複。

ZADD 命令

將元素添加到集合中,如果元素已存在則更新對應的score

ZADD key score member

在線示例

redis 127.0.0.1:6379> DEL w3codebox
redis 127.0.0.1:6379> ZADD w3codebox 0 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> ZADD w3codebox 0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE w3codebox 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"