Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Redis failover dalam aplikasi PHP

Redis failover dalam aplikasi PHP

王林
王林asal
2023-05-15 20:10:51994semak imbas

Redis ialah pangkalan data dalam memori sumber terbuka yang menyokong pelbagai struktur data, termasuk rentetan, cincang, senarai, set, set tersusun, dsb., dan boleh digunakan secara meluas dalam senario seperti caching data, baris gilir mesej, dan analisis statistik masa nyata. Apabila menggunakan Redis, kerana datanya disimpan dalam ingatan, sebaik sahaja kegagalan berlaku, data akan hilang, jadi failover adalah sangat penting. Artikel ini akan memperkenalkan mekanisme failover Redis dalam aplikasi PHP dan pelaksanaannya.

1. Prinsip Redis failover

Redis failover terutamanya dilaksanakan melalui Redis Sentinel ialah penyelesaian yang mempunyai ketersediaan tinggi untuk Redis apabila contoh Redis gagal. Sentinel terdiri daripada nod sentinel dan tika Redis Nod sentinel bertanggungjawab untuk memantau status tika Redis Apabila tika Redis didapati tidak tersedia, ia akan memilih salah satu tika Redis alternatif sebagai nod induk baharu. menyiarkan maklumat kepada pelanggan lain, menyebabkan mereka menyambung semula ke nod induk baharu.

Dalam Redis Sentinel, nod sentinel boleh dikonfigurasikan dengan berbilang kejadian Redis alternatif untuk bersedia untuk pemilihan nod induk baharu selepas nod induk gagal. Apabila nod induk gagal, Sentinel akan memilih satu daripada tika Redis alternatif Jika tika Redis yang dipilih bukan yang terkini, ia perlu menyegerakkan tika ini kepada keadaan terkini dan kemudian menggunakannya sebagai nod induk baharu. Pada masa yang sama, Sentinel juga akan mengemas kini fail konfigurasi untuk memberitahu pelanggan lain bahawa mereka perlu menyambung ke nod induk baharu.

2. Pelaksanaan failover Redis

Dalam aplikasi PHP, pelaksanaan failover Redis terutamanya merangkumi dua aspek: klien dan pelayan. Pelanggan boleh melaksanakan kumpulan sambungan ketersediaan tinggi dengan menggunakan API yang disediakan oleh Redis Sentinel, yang boleh melengkapkan failover Redis secara automatik untuk memastikan kesinambungan aplikasi. Pelayan perlu menggunakan nod sentinel untuk memantau status tika Redis dan melengkapkan failover secara automatik apabila kegagalan berlaku untuk memastikan ketersediaan tinggi tika Redis.

  1. Redis client failover

Redis client boleh menggunakan API yang disediakan oleh Redis Sentinel untuk melaksanakan failover. Mula-mula, anda perlu mendayakan fungsi Sentinel dalam fail konfigurasi redis.conf dan nyatakan alamat pendengaran dan nombor port Sentinel:

sentinel monitor redis-cluster 127.0.0.1 6379 2
sentinel down-after-milliseconds redis-cluster 5000
sentinel failover-timeout redis-cluster 60000

Antaranya, monitor sentinel digunakan untuk mengkonfigurasi pemantauan dan pengurusan contoh Redis kumpulan, dan redis-cluster ialah Nama kumpulan yang dipantau, 127.0.0.1 ialah alamat IP bagi contoh Redis, 6379 ialah nombor port bagi contoh Redis, dan 2 ialah bilangan kejadian Redis. sentinel turun selepas milisaat menentukan masa pengesanan untuk Sentinel mengesan bahawa tika Redis berada di luar talian. sentinel failover-timeout menentukan masa untuk bertukar daripada nod utama kepada nod sandaran, unitnya adalah milisaat, di sini ialah 60000 milisaat.

Kemudian pelanggan Redis boleh menggunakan API yang disediakan oleh Redis Sentinel untuk melaksanakan kumpulan sambungan ketersediaan tinggi untuk memastikan kegagalan Redis automatik. Sebagai contoh, dalam aplikasi PHP, anda boleh menggunakan pemalam phpredis untuk menyambung ke contoh Redis dan menetapkan pilihan sentinel, seperti yang ditunjukkan di bawah:

$redis = new Redis();
$redis->connect('127.0.0.1', 26379);
$redis->setOption(Redis::OPT_SENTINEL, 'redis-cluster');

Antaranya, kaedah sambung digunakan untuk menyambung ke contoh Redis Sentinel, 26379 ialah nombor port Sentinel, dan setOption Kaedah ini digunakan untuk menetapkan pilihan sentinel, dan redis-cluster ialah nama kumpulan yang dipantau. Dengan cara ini, klien Redis dalam aplikasi PHP boleh melengkapkan failover Redis secara automatik untuk memastikan kesinambungan aplikasi.

  1. Redis server failover

Redis server failover perlu dilaksanakan menggunakan Redis Sentinel. Mula-mula, anda perlu mendayakan fungsi Sentinel dalam fail konfigurasi redis.conf dan nyatakan alamat pendengaran dan nombor port Sentinel:

sentinel monitor redis-cluster 127.0.0.1 6379 2
sentinel down-after-milliseconds redis-cluster 5000
sentinel failover-timeout redis-cluster 60000

Antaranya, monitor sentinel digunakan untuk mengkonfigurasi pemantauan dan pengurusan contoh Redis kumpulan, dan redis-cluster ialah Nama kumpulan yang dipantau, 127.0.0.1 ialah alamat IP bagi contoh Redis, 6379 ialah nombor port bagi contoh Redis, dan 2 ialah bilangan kejadian Redis. sentinel turun selepas milisaat menentukan masa pengesanan untuk Sentinel mengesan bahawa tika Redis berada di luar talian. sentinel failover-timeout menentukan masa untuk bertukar daripada nod utama kepada nod sandaran, unitnya adalah milisaat, di sini ialah 60000 milisaat.

Kemudian, mulakan proses Redis Sentinel dan laksanakan arahan berikut:

redis-sentinel /path/to/redis-sentinel.conf

Antaranya, /path/to/redis-sentinel.conf ialah laluan fail konfigurasi Redis Sentinel.

Akhir sekali, Redis Sentinel memantau kesihatan tika Redis secara automatik dan melengkapkan failover secara automatik apabila tika Redis gagal. Jika nod induk tika Redis gagal, Sentinel akan memilih salah satu tika Redis alternatif sebagai nod induk baharu dan menyiarkan maklumat kepada pelanggan lain supaya mereka boleh menyambung semula ke nod induk baharu.

3. Ringkasan

Redis ialah pangkalan data dalam memori yang sangat baik yang boleh digunakan secara meluas dalam cache data, baris gilir mesej, analisis statistik masa nyata dan senario lain. Failover sangat penting apabila menggunakan Redis dan boleh dicapai dengan menggunakan Redis Sentinel. Dalam aplikasi PHP, klien Redis boleh menggunakan API yang disediakan oleh Redis Sentinel untuk melaksanakan kumpulan sambungan ketersediaan tinggi untuk memastikan kegagalan Redis automatik dan memastikan kesinambungan aplikasi. Pelayan Redis perlu menggunakan Redis Sentinel untuk memantau status tika Redis dan melengkapkan failover secara automatik apabila kegagalan berlaku untuk memastikan ketersediaan tinggi tika Redis.

Atas ialah kandungan terperinci Redis failover dalam aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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