Rumah pangkalan data Redis Kaedah Redis dan contoh aplikasi untuk merealisasikan penyelarasan teragih

Kaedah Redis dan contoh aplikasi untuk merealisasikan penyelarasan teragih

May 11, 2023 pm 03:27 PM
redis Contoh aplikasi Penyelarasan teragih

Kaedah dan contoh aplikasi Redis melaksanakan penyelarasan teragih

Dalam sistem teragih, penyelarasan antara nod ialah isu utama. Penyelesaian tradisional biasanya menggunakan nod pusat untuk menyelaraskan nod lain, tetapi ini akan membawa masalah seperti titik kegagalan tunggal dan kesesakan prestasi. Dalam tahun-tahun kebelakangan ini, Redis, sebagai pangkalan data dalam memori berprestasi tinggi, telah digunakan secara meluas. Dalam Redis, struktur data dan set arahannya boleh digunakan untuk melaksanakan fungsi penyelarasan teragih, dengan itu mencapai sistem teragih yang sangat tersedia dan berprestasi tinggi. Artikel ini akan memperkenalkan kaedah dan contoh aplikasi Redis untuk mencapai penyelarasan teragih.

1. Struktur dan arahan data Redis

Redis menyokong pelbagai struktur data, termasuk rentetan (rentetan), senarai (senarai), set (set), set tertib (zset) dan Hash . Setiap struktur sepadan dengan satu set arahan, yang boleh menambah, memadam, bertanya, dsb. operasi pada struktur. Dalam penyelarasan teragih, kami biasanya menggunakan senarai dan set.

  1. Senarai

Senarai (senarai) ialah tatasusunan rentetan tersusun dalam Redis. Kita boleh menggunakan lpush, rpush, lpop, rpop dan arahan lain untuk menambah dan memadam elemen di kedua-dua hujung senarai. Fungsi seperti baris gilir tugas dan baris gilir mesej boleh dilaksanakan melalui senarai.

Sebagai contoh, kita boleh menambah tugasan pada senarai menggunakan:

LPUSH tasks "task1"
Salin selepas log masuk
Salin selepas log masuk

dan kemudian mengeluarkan tugasan itu daripada senarai menggunakan:

RPOP tasks
Salin selepas log masuk
Salin selepas log masuk
  1. Koleksi

Set ialah koleksi rentetan tidak tertib dan tidak berulang dalam Redis. Kita boleh menggunakan perintah sadd, srem, smembers dan lain-lain untuk menambah dan memadam elemen pada koleksi, atau untuk bertanya sama ada koleksi mengandungi elemen.

Sebagai contoh, kita boleh menambah nod pada koleksi menggunakan arahan berikut:

SADD nodes "node1"
Salin selepas log masuk

Kemudian tanya semua nod dalam koleksi menggunakan arahan berikut:

SMEMBERS nodes
Salin selepas log masuk
Salin selepas log masuk

Di atas ialah senarai dan koleksi Perintah yang biasa digunakan, arahan ini boleh membantu kami melaksanakan fungsi penyelarasan teragih.

2. Cara Redis melaksanakan penyelarasan teragih

Dengan struktur data dan arahan di atas, kami boleh menggunakan Redis untuk melaksanakan penyelarasan teragih. Kaedah menggunakan senarai dan set untuk mencapai penyelarasan teragih akan diperkenalkan di bawah.

  1. Gunakan senarai untuk melaksanakan baris gilir tugas

Dalam sistem teragih, baris gilir tugas ialah senario biasa. Kita boleh menggunakan struktur senarai Redis untuk melaksanakan baris gilir tugas yang diedarkan.

Kita boleh menambah tugas pada baris gilir tugas menggunakan arahan berikut:

LPUSH tasks "task1"
Salin selepas log masuk
Salin selepas log masuk

Setiap nod kemudiannya boleh mengeluarkan tugas daripada baris gilir tugas menggunakan arahan berikut:

RPOP tasks
Salin selepas log masuk
Salin selepas log masuk

Jika baris gilir kosong, arahan RPOP mengembalikan sifar Pada masa ini, nod boleh menunggu untuk tempoh masa dan mengeluarkan tugas semula. Jika tugasan dalam baris gilir tugasan telah diperuntukkan, tugasan baharu boleh ditambah pada baris gilir mengikut keperluan.

Dengan cara ini, kita boleh mencapai penjadualan tugas teragih, dan setiap nod boleh mendapatkan tugas secara bebas daripada baris gilir tugas dan melaksanakannya.

  1. Gunakan koleksi untuk melaksanakan pendaftaran nod

Dalam sistem teragih, koordinasi diperlukan antara nod. Kita boleh menggunakan struktur koleksi Redis untuk melaksanakan pendaftaran dan penemuan nod.

Apabila setiap nod bermula, tambahkan maklumat nodnya sendiri pada koleksi melalui arahan berikut:

SADD nodes "Node-01"
Salin selepas log masuk

Kemudian nod lain boleh menanyakan semua nod dalam koleksi melalui arahan berikut:

SMEMBERS nodes
Salin selepas log masuk
Salin selepas log masuk

Selepas mendapat senarai nod, anda boleh memilih nod lain untuk komunikasi, penyelarasan dan operasi lain mengikut keperluan.

Apabila nod keluar secara tidak normal, anda boleh menggunakan arahan berikut untuk mengeluarkannya daripada set:

SREM nodes "Node-01"
Salin selepas log masuk

Dengan cara ini, kita boleh mencapai penyelarasan antara nod teragih, setiap Nod boleh menambah dan memadamkan maklumat nod mereka sendiri pada koleksi.

3. Contoh aplikasi koordinasi yang diedarkan Redis

Kaedah di atas boleh digunakan dalam banyak senario. Contoh mudah akan diperkenalkan di bawah: melaksanakan penjadualan tugas teragih.

Andaikan kita perlu menjalankan beberapa tugasan dan mengagihkannya untuk dijalankan pada berbilang mesin. Kami boleh menyimpan senarai tugas dalam Redis dan menjalankan penjadual pada setiap mesin. Penjadual boleh bergilir-gilir mengambil tugas daripada Redis dan melaksanakannya pada mesin ini.

Untuk mengelakkan tugasan berulang, kami boleh menggunakan koleksi untuk menyimpan senarai tugasan yang telah dilakukan. Apabila setiap tugasan selesai, setiap nod boleh menambah tugasan yang berjaya dilaksanakan pada koleksi Pada kali seterusnya penjadual mengeluarkan tugasan, ia boleh menentukan dahulu sama ada tugasan itu telah dilaksanakan.

Kod pseudo penjadual tugas adalah seperti berikut:

while True:
    task = rpop("tasks")
    if task is None:
        sleep(1)
        continue
    if sismember("finished_tasks", task):
        continue
    run_task(task)
    sadd("finished_tasks", task)
Salin selepas log masuk

Dalam kod di atas, rpop digunakan untuk mengeluarkan tugas daripada baris gilir tugas, dan jika baris gilir kosong, tunggu dan teruskan gelung; sismember digunakan untuk menilai Sama ada tugasan telah dilaksanakan, jika ya, langkau dan teruskan gelung run_task digunakan untuk melaksanakan tugasan, dan selepas pelaksanaan berjaya, tugas itu ditambahkan pada koleksi tugasan yang telah selesai.

Melalui kod di atas, kami boleh melaksanakan penjadualan tugas teragih pada berbilang mesin, dan setiap nod secara bebas memperoleh tugas daripada baris gilir tugas dan melaksanakannya.

4

Dalam sistem teragih, penyelarasan antara nod adalah isu utama. Sebagai pangkalan data dalam memori berprestasi tinggi, Redis boleh merealisasikan fungsi seperti penjadualan tugas teragih, pendaftaran dan penemuan antara nod melalui struktur data dan arahannya. Artikel ini memperkenalkan senarai dan struktur koleksi Redis, dan menggunakannya untuk melaksanakan contoh penjadualan tugas teragih dan pendaftaran nod masing-masing. Kaedah ini boleh digunakan dalam banyak senario untuk membantu kami mencapai sistem teragih yang sangat tersedia dan berprestasi tinggi.

Atas ialah kandungan terperinci Kaedah Redis dan contoh aplikasi untuk merealisasikan penyelarasan teragih. 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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu 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)

Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

1. Mulakan menu [Start], masukkan [cmd], klik kanan [Command Prompt], dan pilih Run as [Administrator]. 2. Masukkan arahan berikut mengikut turutan (salin dan tampal dengan teliti): SCconfigwuauservstart=auto, tekan Enter SCconfigbitsstart=auto, tekan Enter SCconfigcryptsvcstart=auto, tekan Enter SCconfigtrustedinstallerstart=auto, tekan Enter SCconfigwuauservtype=share, tekan Enter netstopwuauserv , tekan enter netstopcryptS

Menganalisis kesesakan fungsi PHP dan meningkatkan kecekapan pelaksanaan Menganalisis kesesakan fungsi PHP dan meningkatkan kecekapan pelaksanaan Apr 23, 2024 pm 03:42 PM

Kesesakan fungsi PHP membawa kepada prestasi rendah, yang boleh diselesaikan melalui langkah berikut: cari fungsi kesesakan dan gunakan alat analisis prestasi. Keputusan cache untuk mengurangkan pengiraan semula. Memproses tugas secara selari untuk meningkatkan kecekapan pelaksanaan. Optimumkan penggabungan rentetan, sebaliknya gunakan fungsi terbina dalam. Gunakan fungsi terbina dalam dan bukannya fungsi tersuai.

Strategi dan pengoptimuman caching API Golang Strategi dan pengoptimuman caching API Golang May 07, 2024 pm 02:12 PM

Strategi caching dalam GolangAPI boleh meningkatkan prestasi dan mengurangkan beban pelayan Strategi yang biasa digunakan ialah: LRU, LFU, FIFO dan TTL. Teknik pengoptimuman termasuk memilih storan cache yang sesuai, caching hierarki, pengurusan ketidaksahihan dan pemantauan dan penalaan. Dalam kes praktikal, cache LRU digunakan untuk mengoptimumkan API untuk mendapatkan maklumat pengguna daripada pangkalan data Data boleh diambil dengan cepat daripada cache Jika tidak, cache boleh dikemas kini selepas mendapatkannya daripada pangkalan data.

Yang manakah mempunyai prestasi yang lebih baik, erlang atau golang? Yang manakah mempunyai prestasi yang lebih baik, erlang atau golang? Apr 21, 2024 am 03:24 AM

Terdapat perbezaan prestasi antara Erlang dan Go. Erlang cemerlang dalam concurrency, manakala Go mempunyai daya pemprosesan yang lebih tinggi dan prestasi rangkaian yang lebih pantas. Erlang sesuai untuk sistem yang memerlukan konkurensi tinggi, manakala Go sesuai untuk sistem yang memerlukan daya pemprosesan tinggi dan kependaman rendah.

Mekanisme caching dan amalan aplikasi dalam pembangunan PHP Mekanisme caching dan amalan aplikasi dalam pembangunan PHP May 09, 2024 pm 01:30 PM

Dalam pembangunan PHP, mekanisme caching meningkatkan prestasi dengan menyimpan sementara data yang kerap diakses dalam memori atau cakera, dengan itu mengurangkan bilangan akses pangkalan data. Jenis cache terutamanya termasuk memori, fail dan cache pangkalan data. Caching boleh dilaksanakan dalam PHP menggunakan fungsi terbina dalam atau perpustakaan pihak ketiga, seperti cache_get() dan Memcache. Aplikasi praktikal biasa termasuk caching hasil pertanyaan pangkalan data untuk mengoptimumkan prestasi pertanyaan dan caching halaman output untuk mempercepatkan pemaparan. Mekanisme caching berkesan meningkatkan kelajuan tindak balas laman web, meningkatkan pengalaman pengguna dan mengurangkan beban pelayan.

Bagaimana untuk menggunakan cache Redis dalam penomboran tatasusunan PHP? Bagaimana untuk menggunakan cache Redis dalam penomboran tatasusunan PHP? May 01, 2024 am 10:48 AM

Menggunakan cache Redis boleh mengoptimumkan prestasi halaman tatasusunan PHP. Ini boleh dicapai melalui langkah berikut: Pasang klien Redis. Sambung ke pelayan Redis. Cipta data cache dan simpan setiap halaman data ke dalam cincangan Redis dengan kunci "halaman:{page_number}". Dapatkan data daripada cache dan elakkan operasi mahal pada tatasusunan besar.

Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 May 08, 2024 pm 05:10 PM

Mula-mula anda perlu menetapkan bahasa sistem kepada paparan Bahasa Cina Mudah dan mulakan semula. Sudah tentu, jika anda telah menukar bahasa paparan kepada Bahasa Cina Ringkas sebelum ini, anda boleh melangkau langkah ini sahaja. Seterusnya, mula mengendalikan pendaftaran, regedit.exe, navigasi terus ke HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dalam bar navigasi kiri atau bar alamat atas, dan kemudian ubah suai nilai kunci InstallLanguage dan nilai kunci Lalai kepada 0804 (jika anda ingin menukarnya ke Bahasa Inggeris en- kami, anda perlu Mula-mula tetapkan bahasa paparan sistem kepada en-us, mulakan semula sistem dan kemudian tukar semuanya kepada 0409) Anda mesti memulakan semula sistem pada ketika ini.

Bolehkah navicat menyambung ke redis? Bolehkah navicat menyambung ke redis? Apr 23, 2024 pm 05:12 PM

Ya, Navicat boleh menyambung ke Redis, yang membolehkan pengguna mengurus kunci, melihat nilai, melaksanakan arahan, memantau aktiviti dan mendiagnosis masalah. Untuk menyambung ke Redis, pilih jenis sambungan "Redis" dalam Navicat dan masukkan butiran pelayan.

See all articles