Redis HyperLogLog
Redis menambah struktur HyperLogLog dalam versi 2.8.9.
Redis HyperLogLog ialah algoritma yang digunakan untuk statistik kardinaliti Kelebihan HyperLogLog ialah apabila bilangan atau isipadu elemen input sangat besar, ruang yang diperlukan untuk mengira kardinaliti sentiasa tetap. , dan sangat kecil.
Dalam Redis, setiap kunci HyperLogLog hanya memerlukan 12 KB memori untuk mengira asas hampir 2^64 elemen berbeza. nombor. Ini berbeza dengan koleksi yang menggunakan lebih banyak memori semasa mengira kardinaliti Lebih banyak unsur yang ada, lebih banyak memori digunakan.
Walau bagaimanapun, kerana HyperLogLog hanya akan mengira asas berdasarkan elemen input dan tidak akan menyimpan elemen input itu sendiri, jadi HyperLogLog tidak boleh mengembalikan elemen individu input seperti koleksi.
Apakah itu kardinaliti?
Contohnya, jika set data ialah {1, 3, 5, 7, 5, 7, 8}, maka set kardinaliti ini set data ialah {1, 3 , 5 ,7, 8}, kardinaliti (elemen tidak berulang) ialah 5. Anggaran kardinaliti adalah untuk mengira kardinaliti dengan cepat dalam julat ralat yang boleh diterima.
Contoh
Contoh berikut menunjukkan proses kerja HyperLogLog:
redis 127.0.0.1:6379> PFADD w3ckey "redis" 1) (integer) 1 redis 127.0.0.1:6379> PFADD w3ckey "mongodb" 1) (integer) 1 redis 127.0.0.1:6379> PFADD w3ckey "mysql" 1) (integer) 1 redis 127.0.0.1:6379> PFCOUNT w3ckey (integer) 3
Arahan Redis HyperLogLog
Jadual berikut menyenaraikan redis Perintah asas HyperLogLog:
序号 | 命令及描述 |
---|---|
1 | PFADD key element [element ...] 添加指定元素到 HyperLogLog 中。 |
2 | PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。 |
3 | PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog |