Jadual Kandungan
1. Prinsip HyperLogLog
2. Langkah penggunaan:
3. Contoh penggunaan paparan halaman untuk melaksanakan permintaan penyahduplikasian IP
4. kebergantungan:
 1. Cipta objek RedissonClient
Ciri:
Fungsi utama Redis menggunakan HyperLogLog adalah untuk melakukan pengiraan deduplikasi dalam kes aliran data yang besar (pandangan, IP, bandar).
Rumah pangkalan data Redis Cara menggunakan jenis data HyperLogLog dalam Redis

Cara menggunakan jenis data HyperLogLog dalam Redis

May 29, 2023 am 09:29 AM
redis hyperloglog

1. Prinsip HyperLogLog

Redis HyperLogLog menggunakan algoritma kebarangkalian, algoritma HyperLogLog, untuk menganggarkan kardinaliti. Menggunakan set fungsi cincang dan susunan sedikit panjang m, HyperLogLog dapat menganggarkan bilangan elemen unik dalam satu set.

Dalam algoritma HyperLogLog, setiap elemen dicincang dan selepas menukar nilai cincang ke perduaan, setiap elemen dijaringkan mengikut nombor 1 dalam awalan rentetan perduaan. Sebagai contoh, jika nilai cincang sesuatu elemen ialah 01110100011, maka bilangan 1 dalam awalan ialah 3, jadi dalam algoritma HyperLogLog, skor elemen ini ialah 3.

Apabila markah semua elemen dikira, ambil salingan setiap skor (1 / 2^n), kemudian tambah salingan ini dan ambil salingan, anda akan mendapat anggaran kardinaliti, nilai ini ialah HyperLogLog The keputusan anggaran algoritma.

Algoritma HyperLogLog menukar saiz panjang m tatasusunan bit, menjejaskan memori yang diduduki oleh struktur data dan ketepatan nilai anggaran (iaitu, ralat anggaran), dan memperoleh hasil yang antara ruang yang diduduki oleh data dan tahap ralat yang lebih kecil.

Ringkasnya, idea teras algoritma HyperLogLog adalah berdasarkan fungsi cincang dan operasi bit, dengan menukar nilai cincang kepada aliran bit dan mengira bilangan 0 pendahuluan, dengan itu menganggarkan nilai unik dengan cepat ​dalam kuantiti set data yang besar. Menggunakan algoritma hyperloglog, kami dapat mengenal pasti halaman web pendua dengan cepat dalam set data yang sangat besar.

2. Langkah penggunaan:

Redis HyperLogLog ialah struktur data yang boleh digunakan untuk menganggarkan bilangan elemen dalam koleksi Ia boleh mengekalkan jumlah data yang besar dengan menggunakan memori yang sangat sedikit. Ia lebih tepat daripada algoritma anggaran konvensional dan sangat pantas apabila memproses sejumlah besar data.

Contoh mudah, kita boleh menggunakan HyperLogLog untuk mengira bilangan IP bebas yang melawati tapak web Secara khusus, anda boleh mengikuti langkah berikut:

  • Mula-mula buat HyperLogLog. struktur data: PFADD hll:unique_ips 127.0.0.1

  • Tambahkan pada struktur data unique_ips untuk setiap ip akses: PFADD hll:unique_ips 192.168.1.1

  • Dapatkan anggaran nombor elemen dalam set yang dikira : PFCOUNT hll:unique_ips

  • Anda boleh mendapatkan kiraan yang lebih tepat dengan menggabungkan berbilang struktur HyperLogLog (seperti mengikut hari atau jam).

Perlu diingat bahawa walaupun HyperLogLog boleh menjimatkan banyak memori, ia adalah algoritma anggaran dan julat ralat tidak tepat sepenuhnya Anda harus memberi perhatian kepada skop penggunaannya apabila menggunakannya dalam amalan.

3. Contoh penggunaan paparan halaman untuk melaksanakan permintaan penyahduplikasian IP

Cara menggunakan jenis data HyperLogLog dalam Redis

4. kebergantungan:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.6.0</version>
</dependency>
Salin selepas log masuk

2. Cipta objek Jedis:

Jedis jedis = new Jedis("localhost");
Salin selepas log masuk

3. Tambah elemen pada struktur data HyperLogLog:

jedis.pfadd("hll:unique_ips", "127.0.0.1");
Salin selepas log masuk

4. Dapatkan bilangan elemen dalam koleksi Nilai anggaran:

Long count = jedis.pfcount("hll:unique_ips");
System.out.println(count);
Salin selepas log masuk

5. Kiraan yang lebih tepat boleh diperoleh dengan menggabungkan berbilang struktur HyperLogLog. Anda boleh menggunakan perintah

dalam Jedis untuk menggabungkan struktur data HyperLogLog:

jedis.pfmerge("hll:unique_ips", "hll:unique_ips1", "hll:unique_ips2", "hll:unique_ips3");
Salin selepas log masuk
PFMERGE5 Redission menggunakan kebergantungan

 1. Cipta objek RedissonClient

rreee

 2. Cipta objek RHyperLogLog

Config config = new Config();
config.useSingleServer().setAddress("redis://localhost:6379");
RedissonClient redisson = Redisson.create(config);
Salin selepas log masuk

3. Tambah elemen

RHyperLogLog<String> uniqueIps = redisson.getHyperLogLog("hll:unique_ips");
Salin selepas log masuk

4. Dapatkan anggaran kuantiti

uniqueIps.add("127.0.0.1");
Salin selepas log masuk

5. Cantumkan berbilang objek HyperLogLog

LogLog

LogLog

Ciri:

    mempunyai ketepatan yang rendah, tetapi menggunakan memori yang sangat sedikit.
  • menyokong memasukkan elemen baharu tanpa mengira dua kali.
  • Menyediakan arahan untuk mengoptimumkan penggunaan memori dan ketepatan mengira. Contohnya, PFADD, PFCOUNT, PFMERGE dan arahan lain.
  • boleh menganggarkan bilangan elemen berbeza dalam set data, iaitu kekardinalitian set.
  • Menyokong operasi penggabungan pada berbilang objek HyperLogLog untuk mendapatkan anggaran jumlah kardinaliti koleksi ini.
  • Kaedah yang biasa digunakan dalam HyperLogLog:

    Unsur kunci PFADD [elemen ...]: Tambahkan satu atau lebih elemen pada struktur HyperLogLog.
  • Kunci PFCOUNT [kunci ...]: Dapatkan anggaran kardinaliti satu atau lebih struktur HyperLogLog.
  • Kunci sumber destkey PFMERGE [kunci sumber ...]: Gabungkan satu atau lebih struktur HyperLogLog ke dalam struktur sasaran.
  • PFSELFTEST [numtests]: Uji prestasi dan ketepatan anggaran HyperLogLog (hanya untuk versi Redis4.0+)
  • Perlu diingat bahawa , walaupun HyperLogLog boleh menjimatkan banyak memori, ia masih merupakan algoritma anggaran, julat ralat tidak tepat sepenuhnya, dan ia mempunyai kos pengiraan tertentu. Bergantung pada aplikasi sebenar, anda perlu mempertimbangkan sama ada untuk menggunakan HyperLogLog atau struktur data lain untuk menganggarkan bilangan elemen.

7. Ringkasan senario penggunaan:

Fungsi utama Redis menggunakan HyperLogLog adalah untuk melakukan pengiraan deduplikasi dalam kes aliran data yang besar (pandangan, IP, bandar).

Secara khusus, berikut ialah beberapa senario di mana Redis HyperLogLog digunakan untuk penyahduplikasian dan pengiraan:

  • Kira Paparan Halaman - Dalam aplikasi web, HyperLogLog boleh digunakan untuk mengira bilangan pelawat unik untuk setiap halaman. Gunakan teknologi HyperLogLog untuk mengira purata bilangan lawatan ke halaman ini merentas tempoh masa yang berbeza.

  • HyperLogLog mempunyai utiliti penting dalam menganalisis bilangan pengguna dalam pengumpulan data besar. Struktur data berasaskan kebarangkalian amat berkesan apabila berurusan dengan set data seperti ID pengguna unik. HyperLogLog hanya menyimpan bilangan nilai cincang yang terhad selepas pencincangan dan dapat menyimpulkan saiz set data.

  • Kira klik pengiklanan - Untuk analisis pengiklanan pada tapak web atau aplikasi, HyperLogLog boleh digunakan untuk menangkap bilangan klik berkesan, iaitu bilangan klik bukan pendua atau unik.

Atas ialah kandungan terperinci Cara menggunakan jenis data HyperLogLog dalam Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara menggunakan redis berulir tunggal Cara menggunakan redis berulir tunggal Apr 10, 2025 pm 07:12 PM

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Cara membaca kod sumber redis Cara membaca kod sumber redis Apr 10, 2025 pm 08:27 PM

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Cara membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara memulakan pelayan dengan redis Cara memulakan pelayan dengan redis Apr 10, 2025 pm 08:12 PM

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

See all articles