Apakah kumpulan pengguna di aliran redis?
Kumpulan pengguna menyelesaikan masalah duplikasi mesej dengan membenarkan beberapa pengguna untuk bekerjasama membaca aliran data yang sama. 1. Kumpulan pengguna memastikan bahawa setiap mesej diproses hanya sekali oleh satu pengguna dalam kumpulan; 2. Pengguna boleh mengesahkan bahawa ia berjaya diproses, dan mesej yang tidak disahkan dapat ditugaskan semula; 3. Gunakan Xgroup Create untuk membuat kumpulan, XreadGroup membaca mesej, dan proses pengesahan Xack selesai; 4. Mesej yang tidak disahkan disimpan dalam senarai PEL, dan boleh dilihat melalui xpending atau dipindahkan ke Xclaim.
Kumpulan pengguna di Redis Streams adalah cara untuk mengatur pelbagai pengguna supaya mereka dapat bekerjasama membaca data dari aliran yang sama, tanpa melangkah pada jari kaki masing -masing. Fikirkannya seperti pasukan yang bekerja untuk memproses tugas dari senarai tugasan yang dikongsi-setiap orang (pengguna) mengambil tugas dan bekerja di atasnya secara bebas.
Apakah masalah yang diselesaikan oleh kumpulan pengguna?
Tanpa kumpulan pengguna, jika anda mempunyai banyak pengguna membaca dari aliran yang sama, mereka semua akan mendapat mesej yang sama. Itu tidak sesuai jika anda mahu memecah beban kerja - bayangkan tiga orang melakukan tugas yang sama pada masa yang sama.
Dengan kumpulan pengguna:
- Setiap mesej dalam aliran diproses hanya sekali oleh satu pengguna dalam kumpulan.
- Pengguna boleh mengakui pemprosesan mesej yang berjaya.
- Sekiranya ada masalah atau kemalangan pengguna, mesej yang tidak diketahui boleh ditugaskan semula.
Ini menjadikan kumpulan pengguna sempurna untuk membina sistem pemprosesan mesej yang boleh dipercayai dan berskala.
Bagaimana kumpulan pengguna bekerja dalam amalan?
Apabila menggunakan kumpulan pengguna, terdapat beberapa konsep utama untuk difahami:
- Stream : Sumber data.
- Kumpulan : Kumpulan pengguna yang bernama.
- Pengguna : Proses individu atau pelanggan yang membaca mesej dari aliran sebagai sebahagian daripada kumpulan.
- Senarai Penyertaan Menunggu (PEL) : Trek mesej yang telah dihantar kepada pengguna yang belum diakui.
Inilah aliran mudah:
- Satu pengguna dalam kumpulan membaca mesej menggunakan
XREADGROUP
. - Mesej itu ditandakan sebagai sedang berjalan.
- Setelah pemprosesan pengguna selesai, ia menghantar
XACK
untuk mengesahkan penyelesaian. - Sekiranya mesej itu tidak diakui dalam masa tertentu, ia boleh dihantar kepada pengguna lain.
Cara membuat dan menggunakan kumpulan pengguna
Untuk bermula dengan kumpulan pengguna, pertama anda perlu membuat kumpulan yang berkaitan dengan aliran menggunakan perintah XGROUP CREATE
. Inilah Caranya:
Xgroup buat mygroup mygroup $
Simbol $
bermaksud kumpulan mula membaca dari mesej terkini seterusnya. Jika anda ingin memproses semua mesej yang ada juga, isi $
.
Sebaik sahaja kumpulan itu wujud, pengguna boleh mula menarik mesej:
Kumpulan xreadgroup mygroup consumer1 mengira 1 aliran mystream>
Ini memberitahu Redis untuk menyerahkan sehingga 1 mesej yang tidak diproses dari mystream
kepada consumer1
dalam kumpulan mygroup
.
Selepas diproses, pengguna harus menghantar:
Xack mystream mygroup <message-id>
Ini menghilangkan mesej dari senarai yang belum selesai, memberitahu Redis ia berjaya ditangani.
Perkara yang perlu diperhatikan
Terdapat beberapa gotchas ketika bekerja dengan kumpulan pengguna:
- Mesej yang tidak diketahui kekal di PEL sehingga disahkan. Anda boleh menyemaknya dengan
XPENDING
. - Pengguna boleh terhempas , meninggalkan mesej yang tidak diketahui. Gunakan
XCLAIM
untuk memindahkan mesej tersebut kepada pengguna lain. - Nama pengguna tidak perlu unik, tetapi ia membantu mengesan siapa yang melakukan apa.
- Pengekalan mesej bergantung pada kes penggunaan anda - Redis tidak akan memadam mesej secara automatik melainkan anda menetapkan polisi.
Sebagai contoh, jika anda menyahpepijat atau pulih, ini berguna:
Xpending MyStream Mygroup
Ia menunjukkan berapa banyak mesej yang masih menunggu untuk diakui, bersama -sama dengan butiran seperti yang pengguna mempunyai mereka dan berapa lama mereka telah menunggu.
Oleh itu, sementara kumpulan pengguna mengendalikan kebanyakan koordinasi, anda masih perlu menguruskan pengakuan dan kemungkinan pengambilan semula.
Pada dasarnya itu sahaja.
Atas ialah kandungan terperinci Apakah kumpulan pengguna di aliran redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

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)

Gunakan perintah imbasan untuk bekerjasama dengan Unlink untuk memadamkan kunci dengan selamat yang sepadan dengan corak di Redis. Pertama, gunakan scan0matchpatternCount untuk batch Dapatkan nama utama untuk mengelakkan menyekat; Kemudian gunakan Unlink Asynchronously untuk meningkatkan prestasi. Adalah disyorkan untuk menggunakan redis-cli-scan-pattern'pattern '| Xargsredis-cliunlink untuk mencapai penghapusan yang efisien pada baris arahan, dan melarang penggunaan arahan kunci dalam persekitaran pengeluaran.

UsebgsaveformanualorConfigureSavePointsforautomaticrdbsnapshotstobackupredis;

Menjalankan Redis dengan Docker tanpa memasangnya di tuan rumah, ia boleh dengan cepat bermula melalui perintah Dockerrun; Ia boleh menyesuaikan fail konfigurasi dan memasangnya untuk melaksanakan dasar memori dan tetapan lain; Ia dapat meneruskan data dengan menamakan volume redis-data; Adalah disyorkan untuk menggunakan DockerCompose untuk memudahkan penggunaan dan penyelenggaraan persekitaran pembangunan.

Mula-mula menambah kebergantungan springdataredis, kemudian tetapkan maklumat sambungan Redis dalam fail konfigurasi, kemudian aktifkan cache melalui @enableCaching dan gunakan anotasi cache, dan akhirnya mengendalikan data melalui redistemplate atau stringredistemplate untuk merealisasikan cache, penyimpanan sesi atau akses data berkelajuan tinggi.

UsFlushDbtoclearTheCurrentDatabaseorFlushForallDatabases; kedua -duaSupportAsync (latar belakang) ortsync (menyekat) mod, withasyncpreferredinproductiontoavoidlatency.

Memilih model kegigihan memerlukan perdagangan berdasarkan keperluan aplikasi, tingkah laku beban, dan jenis data. Model biasa termasuk memori sahaja (cepat tetapi tidak tahan lama), penyimpanan cakera (perlahan tetapi berterusan), mod hibrid (kedua-dua kelajuan dan tahan lama), dan menulis-pre-log (kegigihan tinggi). Jika anda memproses data utama, anda harus memilih pangkalan data WAL atau asid; Jika anda boleh mentolerir sedikit kehilangan data, anda boleh memilih memori atau model hibrid. Pada masa yang sama, pertimbangkan kerumitan operasi dan penyelenggaraan, seperti persekitaran awan, anda harus memilih penyelesaian bersepadu yang baik. Kesilapan umum perlu dielakkan, seperti keliru merawat gambar sebagai jaminan yang berkekalan, mengabaikan ujian pemulihan kemalangan, kekerapan penyegerakan yang tidak disengajakan, dan lain -lain. Singkatnya, ia adalah kunci untuk menjelaskan keutamaan dan melakukan ujian senario pengecualian.

Memasang Redis boleh dilakukan melalui APT atau Kod Sumber, dan APT lebih mudah; 2. Kemas kini Indeks Pakej dan pasang Redis-server; 3. Mula dan aktifkan kuasa sendiri; 4. Gunakan redis-cliping untuk menguji pong; 5. Fail konfigurasi pilihan untuk menyesuaikan pengikatan, kata laluan, dan sebagainya; 6. Mulakan semula perkhidmatan dan lengkapkan pemasangan.

Hyperloglog menyediakan kaedah anggaran kiraan unik yang cekap dan cepat dalam redis melalui perintah PFADD dan PFCount. 1. Hyperloglog adalah algoritma kebarangkalian yang digunakan untuk menganggarkan bilangan elemen yang berbeza dalam dataset. Ia hanya memerlukan sedikit memori tetap untuk memproses dataset berskala besar. Ia sesuai untuk menjejaki pelawat bebas atau pertanyaan carian frekuensi tinggi dan senario lain; 2. Pfadd digunakan untuk menambah unsur -unsur kepada hyperloglog, dan pfcount mengembalikan nilai anggaran elemen yang unik dalam satu atau lebih struktur; 3. Menggunakan nama utama yang bermakna, secara langsung menambah nilai rentetan, dan menggabungkan pelbagai HLL untuk mengelakkan pengiraan berulang adalah amalan terbaik untuk menggunakan PFADD dan PFCount; 4. Hyperlo
