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

HyperLogLog di Redis

Redis ha aggiunto la struttura HyperLogLog nella versione 2.8.9.

Redis HyperLogLog è un algoritmo utilizzato per fare statistiche di base. Uno dei vantaggi di HyperLogLog è che, quando il numero o la quantità di elementi di input è molto grande, lo spazio richiesto per calcolare il numero di base è sempre fisso e molto piccolo.

In Redis, ogni chiave HyperLogLog richiede solo 12 KB di memoria per calcolare quasi 2^64 elementi diversi di base numeri. Questo contrasta fortemente con gli insiemi, dove più elementi ci sono, più memoria viene utilizzata per calcolare il numero di base.

Ma poiché HyperLogLog calcola il numero di base solo in base agli elementi di input e non memorizza gli elementi di input stessi, quindi HyperLogLog non può restituire gli elementi di input come un insieme.

Cos'è il numero di base?

Ad esempio, il set di dati {1, 3, 5, 7, 5, 7, 8}, allora l'insieme di base di questo set di dati è {1, 3, 5, 7, 8}, e il numero di base (elementi non ripetuti) è 5. La stima della base è calcolare rapidamente il numero di base entro un margine di errore accettabile.

Esempio online

Esempi seguenti illustrano il funzionamento di HyperLogLog:

redis 127.0.0.1:6379> PFADD w3codeboxkey "redis"
1) (intero) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mongodb"
1) (intero) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mysql"
1) (intero) 1
redis 127.0.0.1:6379> PFCOUNT w3codeboxkey
(intero) 3

Comandi HyperLogLog di Redis

La tabella seguente elenca i comandi di base di redis HyperLogLog:

Numero di sequenzaComando e descrizione
1PFADD key element [element ...]
Aggiungi l'elemento specificato al HyperLogLog.
2PFCOUNT key [key ...]
Restituisci l'估值 dell'intersezione per il HyperLogLog dato.
3PFMERGE destkey sourcekey [sourcekey ...]
Unisci più HyperLogLog in un HyperLogLog singolo