Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan kluster pangkalan data Redis dalam PHP

Bagaimana untuk melaksanakan kluster pangkalan data Redis dalam PHP

WBOY
WBOYasal
2023-05-15 19:01:341507semak imbas

Redis ialah pangkalan data dalam memori yang biasa digunakan. Ia mempunyai ciri-ciri membaca dan menulis berkelajuan tinggi, struktur data yang kaya, dan ketekunan Ia telah menjadi salah satu alat yang sangat penting dalam aplikasi web. Dengan pengembangan perniagaan dan peningkatan jumlah data, pelayan Redis tunggal tidak lagi dapat memenuhi keperluan perniagaan Pada masa ini, adalah perlu untuk menggunakan kluster pangkalan data Redis untuk memastikan ketersediaan dan skalabiliti data yang tinggi.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan kluster pangkalan data Redis , yang dilaksanakan melalui sharding Pemprosesan dan penyimpanan data. Kelompok Redis terdiri daripada berbilang pelayan Redis Setiap pelayan mempunyai berbilang kejadian Redis, dan setiap kejadian menyimpan sebahagian daripada data. Pelanggan mengarahkan permintaan data ke nod yang ditetapkan melalui algoritma penghalaan nod, dan replikasi induk-hamba digunakan antara setiap nod untuk mencapai penyegerakan dan sandaran data.

2. Pasang sambungan Redis

Menggunakan Redis dalam PHP memerlukan pemasangan sambungan Redis menyediakan antara muka PHP Redis, yang boleh berinteraksi dengan pelayan Redis. Anda boleh menggunakan arahan PECL untuk memasang sambungan Redis Operasi khusus adalah seperti berikut:

Muat turun kod sumber sambungan Redis:

wget https://github.com/phpredis/phpredis/archive/5.3.0.tar.gz
  1. Nyahzip pakej kod sumber:
tar zxvf 5.3.0.tar.gz
  1. Tukar ke direktori unzip:
cd phpredis-5.3.0
  1. Kompil dan pasang sambungan Redis:
phpize
./configure
make && make install
  1. Ubah suai fail php.ini , tambah kandungan berikut pada penghujung fail:
extension=redis.so
  1. Mulakan semula perkhidmatan php-fpm atau apache:
sudo service php-fpm restart
    3. Gunakan kelompok Redis
  1. Apabila menggunakan kelompok Redis, anda perlu memberi perhatian kepada perkara berikut:

Setiap nod dalam kelompok Redis mempunyai ID, dan IP serta port nod boleh diperolehi melalui ID.

Setiap nod dalam kelompok Redis mempunyai julat nombor slot maya Pelanggan memetakan Kunci ke nombor slot melalui fungsi cincang, dan kemudian mencari nod yang sepadan berdasarkan nombor slot.
  1. Kluster Redis menggunakan algoritma CRC16 secara lalai untuk mengira nombor slot dan anda boleh menggunakan algoritma pencincangan yang konsisten untuk menyesuaikan algoritma.
  2. Kod berikut menunjukkan cara menggunakan gugusan Redis:
  3. <?php
    $nodes = [
        ['id' => 'node-1', 'host' => '10.10.0.1', 'port' => 6379],
        ['id' => 'node-2', 'host' => '10.10.0.2', 'port' => 6379],
        ['id' => 'node-3', 'host' => '10.10.0.3', 'port' => 6379],
    ];
    $options = [
        'cluster' => 'redis',
        'timeout' => 1.5,
    ];
    $cluster = new RedisCluster(null, $nodes, $options);
    $cluster->set('key', 'value');
    echo $cluster->get('key');
  4. Kod di atas mentakrifkan tiga nod Redis, masing-masing sepadan dengan tiga pelayan Setiap nod ditakrifkan menggunakan IP dan port. Cipta objek gugusan Redis melalui pembina kelas RedisCluster, dan gunakan kaedah set dan dapatkan untuk beroperasi pada pangkalan data Redis.

4. Pengurusan kluster Redis

Dalam kluster Redis, terdapat beberapa perintah yang biasa digunakan untuk pengurusan kluster:

NOD KLUSTER: Tanya semua maklumat nod dalam gugusan .

SLOT KUNCI KLUSTER 5cb7eb41ad9292e7184df9ae4ddbe6a0: Kira nombor slot mana kepunyaan Kunci yang diberikan.
  1. KLUSTER COUNTKEYSINSLOT 58cb293b8600657fad49ec2c8d37b472: Tanya bilangan Kekunci yang terkandung dalam nombor slot yang ditentukan.
  2. TAMBAHAN KLUSTER f28333379237f31d50f0651909593887 [6f76b7fba221d9874d357645dfd287c7 ...]: Berikan nombor slot yang ditentukan kepada nod semasa.
  3. SETSLOT KLUSTER 58cb293b8600657fad49ec2c8d37b472 MIGRASI 16fade38a0ae2512b3249897e708629d: Pindahkan nombor slot yang ditentukan ke nod lain.
  4. SETSLOT KLUSTER 58cb293b8600657fad49ec2c8d37b472 MENGIMPORT 16fade38a0ae2512b3249897e708629d: Import nombor slot yang ditentukan daripada nod lain ke nod semasa.
  5. REPLICATE KLUSTER 16fade38a0ae2512b3249897e708629d: Tetapkan nod sebagai nod hamba nod yang ditentukan.
  6. KLUSTER FAILOVER [FORCE|TAKEOVER]: Tetapkan nod yang ditentukan sebagai nod induk.
  7. Arahan di atas memerlukan penggunaan klien baris arahan Redis boleh dipasang menggunakan arahan berikut:
  8. sudo apt install redis-tools
  9. 5 >Artikel ini Memperkenalkan kaedah dan langkah untuk melaksanakan kluster pangkalan data Redis menggunakan PHP. Kelompok Redis menggunakan seni bina teragih, yang boleh merealisasikan pemprosesan dan penyimpanan data melalui sharding, dan merealisasikan penyegerakan dan sandaran data melalui replikasi tuan-hamba, sekali gus memastikan ketersediaan dan skalabiliti data yang tinggi. Untuk menggunakan kelompok Redis dalam PHP, anda perlu memasang sambungan Redis dan kemudian menggunakan kelas RedisCluster untuk melaksanakan operasi data. Pengurusan kluster boleh dikendalikan melalui klien baris arahan Redis, dan operasi seperti menambah, memadam dan memindahkan nod kluster boleh dilakukan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kluster pangkalan data Redis dalam 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