Cara menggunakan jenis data HyperLogLog dalam Redis
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
4. kebergantungan:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.0</version> </dependency>
2. Cipta objek Jedis:
Jedis jedis = new Jedis("localhost");
3. Tambah elemen pada struktur data HyperLogLog:
jedis.pfadd("hll:unique_ips", "127.0.0.1");
4. Dapatkan bilangan elemen dalam koleksi Nilai anggaran:
Long count = jedis.pfcount("hll:unique_ips"); System.out.println(count);
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");
PFMERGE
5 Redission menggunakan kebergantungan 1. Cipta objek RedissonClient
rreee2. Cipta objek RHyperLogLog
Config config = new Config(); config.useSingleServer().setAddress("redis://localhost:6379"); RedissonClient redisson = Redisson.create(config);
3. Tambah elemen
RHyperLogLog<String> uniqueIps = redisson.getHyperLogLog("hll:unique_ips");
4. Dapatkan anggaran kuantiti
uniqueIps.add("127.0.0.1");
5. Cantumkan berbilang objek HyperLogLog
LogLogLogLog
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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).

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 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 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.

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.

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.

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.
