Redis, Pelayan Kamus Jauh, ialah sistem storan nilai kunci berprestasi tinggi sumber terbuka. Ia mengambil berat secara meluas dan digunakan untuk prestasi cemerlang dan ketersediaan tinggi yang boleh dipercayai. Redis memainkan peranan penting apabila membina sistem ketersediaan tinggi. Artikel ini akan meneroka beberapa teknik utama untuk membina sistem ketersediaan tinggi menggunakan Redis dan memberikan contoh kod khusus.
1. Gunakan Redis untuk melaksanakan replikasi data
Replikasi data ialah bahagian penting untuk mencapai ketersediaan tinggi. Redis menggunakan model replikasi induk-hamba untuk mencapai replikasi automatik dan penyegerakan data, memastikan sistem masih boleh berjalan seperti biasa apabila nod induk gagal. Berikut ialah contoh kod yang menggunakan Redis untuk melaksanakan replikasi tuan-hamba:
# 主节点设置 CONFIG SET protected-mode no CONFIG SET port 6379 CONFIG SET appendonly yes SLAVEOF no one # 从节点设置 CONFIG SET protected-mode no CONFIG SET port 6380 CONFIG SET appendonly yes SLAVEOF 127.0.0.1 6379
Dalam contoh di atas, parameter seperti port, mod perlindungan dan pengesahan kegigihan pertama kali ditetapkan pada nod induk. Kemudian, tetapkan nod hamba untuk menyegerakkan dengan nod induk dan nyatakan IP dan port nod induk. Dengan cara ini, apabila nod induk gagal, nod hamba akan mengambil alih secara automatik untuk memastikan operasi berterusan sistem.
2. Gunakan Redis Sentinel untuk melaksanakan pemantauan kesalahan dan failover
Redis Sentinel ialah alat yang disediakan secara rasmi oleh Redis untuk memantau dan mengurus kejadian Redis. Dengan menggunakan Sentinel, kami boleh memantau status nod Redis dan melakukan failover automatik apabila nod utama gagal. Berikut ialah contoh kod yang menggunakan Redis Sentinel untuk melaksanakan pemantauan kesalahan dan failover:
# 配置Sentinel的主节点和从节点 SENTINEL MONITOR mymaster 127.0.0.1 6379 2 SENTINEL SET mymaster down-after-milliseconds 5000 SENTINEL SET mymaster parallel-syncs 1 # 配置Sentinel的客户端选项 CONFIG SET client-output-buffer-limit normal 0 0 0 CONFIG SET client-output-buffer-limit replica 256mb 64mb 60 CONFIG SET client-output-buffer-limit pubsub 32mb 8mb 60 # 启动Sentinel SENTINEL START
Dalam contoh di atas, mula-mula kami mengkonfigurasi nod induk dan nod hamba yang dipantau oleh Sentinel, dan menentukan hubungan penyegerakan antara nod dan pengesanan kesalahan selang masa. Kami kemudiannya mengkonfigurasi pilihan klien Sentinel untuk mengoptimumkan pemindahan rangkaian dan prestasi cache. Akhir sekali, kami memulakan Sentinel untuk pemantauan masa nyata dan failover.
3. Gunakan Redis Cluster untuk melaksanakan sistem teragih
Redis Cluster ialah penyelesaian yang disediakan oleh Redis untuk membina sistem teragih berskala dan ketersediaan tinggi. Dengan menggunakan Kluster Redis, kami boleh mengedarkan data merentasi berbilang nod untuk mencapai pengimbangan beban dan pemulihan kegagalan. Berikut ialah contoh kod yang menggunakan Kluster Redis untuk melaksanakan sistem teragih:
# 创建Redis Cluster redis-cli --cluster create <ip>:<port> <ip>:<port> <ip>:<port> --cluster-replicas 1 # 添加节点 redis-cli --cluster add-node <new-ip>:<port> <any-existing-ip>:<port> # 删除节点 redis-cli --cluster del-node <ip>:<port> <existing-ip>:<port>
Dalam contoh di atas, kami mula-mula mencipta Kluster Redis menggunakan arahan redis-cli
dan menentukan tahap nod dan replikasi awal kluster. Kami kemudiannya boleh menaikkan atau menurunkan gugusan dengan menambah atau mengalih keluar nod mengikut keperluan.
Ringkasan
Redis memainkan peranan penting dalam membina sistem ketersediaan tinggi Melalui teknologi seperti replikasi data, pemantauan kesalahan dan failover, dan storan teragih, kami boleh meningkatkan kebolehpercayaan dan prestasi sistem dengan berkesan. Artikel ini memberikan beberapa teknologi utama untuk melaksanakan sistem ketersediaan tinggi menggunakan Redis dan menyediakan contoh kod khusus. Saya harap kandungan ini dapat membantu pembaca lebih memahami dan menggunakan Redis serta membina sistem yang stabil dan boleh dipercayai.
Atas ialah kandungan terperinci Redis: teknologi utama untuk membina sistem ketersediaan tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!