Rumah  >  Artikel  >  pangkalan data  >  Apakah tiga cara pengelompokan redis

Apakah tiga cara pengelompokan redis

WBOY
WBOYke hadapan
2023-05-26 14:37:131426semak imbas

Redis mempunyai tiga kaedah pengelompokan: replikasi tuan-hamba, mod sentinel dan gugusan Kelompok.

Replikasi tuan-hamba

Apakah tiga cara pengelompokan redis

Prinsip asas

Apabila pelayan hamba baharu ditubuhkan, pelayan hamba akan menghantar arahan SYNC ke pelayan induk. Selepas menerima arahan SYNC, pelayan induk akan melaksanakan arahan BGSAVE Semasa pelaksanaan, semua arahan akan ditulis ke dalam buffer Apabila arahan BGSAVE dilaksanakan, fail RDB yang dihasilkan akan dihantar ke pelayan hamba . Pelayan hamba akan menggunakan fail ini Muatkan data ke dalam memori, dan kemudian pelayan induk akan menghantar arahan penimbal kepada pelayan hamba dalam format protokol arahan Redis. Selepas itu, setiap kali perkhidmatan induk melaksanakan arahan, ia akan disegerakkan ke pelayan hamba. Walaupun berbilang pelayan hamba menghantar arahan SYNC ke pelayan induk, pelayan induk hanya akan melaksanakan satu arahan BGSAVE untuk memproses permintaan penyegerakan seterusnya. Pelayan induk boleh mempunyai berbilang pelayan hamba, dan pelayan hamba juga boleh mempunyai pelayan hamba, membentuk struktur seperti graf Fungsi replikasi tidak menyekat pelayan induk Walaupun terdapat satu atau lebih permintaan penyegerakan, pelayan induk masih boleh permintaan perintah proses.

Suis kegigihan

Apabila mod replikasi induk-hamba dikonfigurasikan, fungsi kegigihan pelayan induk perlu dihidupkan Jika fungsi kegigihan pelayan induk dimatikan, sekali pelayan induk dimulakan semula, semua pelayan hamba Data akan hilang Walaupun mod Sentinel dikonfigurasikan, jika pelayan utama secara automatik memulakan proses dengan cepat, supaya pelayan utama baharu belum dipilih dalam mod Sentinel, permulaan bagi. perkhidmatan utama juga akan menyebabkan kehilangan data sub-server.

Konfigurasi

Untuk mengkonfigurasi mod replikasi induk-hamba, hanya gunakan arahan Slaveof, tambahkannya pada fail konfigurasi conf atau laksanakan arahan dalam redis.

SLAVEOF host port

Mod Sentinel

Apakah tiga cara pengelompokan redis

Prinsip Asas

Sistem Sentinel Redis digunakan untuk mengurus berbilang Redis dan terutamanya melaksanakan tiga perkara berikut:

Pemantauan: Sentinel akan terus menyemak status berjalan pelayan induk dan hamba

Peringatan: Apabila pelayan Redis gagal, pemberitahuan boleh dihantar melalui API atau aplikasi lain

Penghijrahan Failover secara automatik: Apabila pelayan induk gagal berfungsi dengan betul, Sentinel akan melakukan pemindahan kesalahan automatik dan memilih pelayan induk baharu daripada pelayan hamba pelayan induk yang gagal .

Sistem Sentinel Redis ialah sistem teragih, dan satu atau lebih Sentinel boleh dikonfigurasikan dalam sistem.

Mula

Gunakan redis-sentinel untuk memulakan

redis-sentinel sentinel.confy

Anda juga boleh menggunakan redis-server untuk memulakan

redis-server sentinel.conf --sentinelyy

Kedua-dua kaedah di atas boleh bermula sentinel, mulakan Sentinel mesti menentukan fail konfigurasi, jika tidak, ia tidak boleh dimulakan:

Apakah tiga cara pengelompokan redis

Konfigurasi

Fail sentinel.conf memerlukan sekurang-kurangnya satu konfigurasi:

sentinel monitor mymaster 127.0.0.1 6379 2

Memantau Hos dengan alias bernama mymaster mempunyai alamat 127.0.0.1 dan port 6379. Untuk menilai pelayan induk ini sebagai tidak sah memerlukan persetujuan sekurang-kurangnya 2 pengawal.

Tidak kira berapa banyak sentinel disediakan untuk bersetuju untuk menentukan kegagalan pelayan utama, berbilang Sentinel dalam sistem diperlukan untuk menyokong pemindahan kerosakan Apabila hanya beberapa sentinel berjalan seperti biasa, pemindahan kerosakan tidak boleh dilakukan dilakukan.

Migrasi Kegagalan

Apabila Sentinel mendapati pelayan utama berada di luar talian, ia dipanggil luar talian subjektif Hanya berbilang Sentinel mendapati bahawa perkhidmatan utama berada di luar talian dan berkomunikasi antara satu sama lain melalui arahan untuk hakim. Apabila pelayan utama pergi ke luar talian, ia dipanggil objektif luar talian. Hanya apabila pelayan induk berada di luar talian secara objektif, ketua Sentinel akan dipilih Selepas pilihan raya, pelayan induk baharu akan diundi untuk memilih pelayan hamba untuk dinaik taraf kepada pelayan induk. Dan hantar perintah Slaveof no one ke pelayan hamba yang dipilih untuk menjadikannya pelayan induk Melalui fungsi terbitkan dan langgan, konfigurasi baharu disiarkan ke Sentinel lain untuk kemas kini, dan arahan Slaveof dihantar ke pelayan induk luar talian untuk membiarkannya. ia Meniru pelayan induk baharu Apabila semua pelayan hamba telah mula mereplikasi pelayan induk baharu, ketua Sentinel menamatkan penghijrahan kesalahan ini.

Apabila tika Redis dikonfigurasikan semula, sama ada ia ditetapkan sebagai pelayan induk, pelayan hamba atau pelayan hamba pelayan induk yang lain, Sentinel akan menghantar mesej kepada tika yang dikonfigurasikan semula CONFIG REWRITE perintah untuk memastikan konfigurasi ini diteruskan ke cakera.

Kluster

Apakah tiga cara pengelompokan redis

之前的主从复制,哨兵模式都难以再现扩容,而Redis cluster集群实现了对Redis的水平扩容,即启动N个Redis节点,每个节点又可以有自己的从服务器,将数据均匀分布的存储在这N个结点上,每个节点存储数据的1/N。Redis cluster集群就是一个可以在多个Redis节点之间进行数据共享的设施;Redis cluster集群采用的是无中心化配置,即节点A无法处理,会将请求转发只节点B进行处理。

键分布模型

Redis集群中的键空间被分割为16384个槽位。Redis采用CRC16算法对16384个槽位进行分配,每个主节点负责其中一部分。为了保证高可用,cluster模式也引入了主从复制模式,一个主节点对应一个或多个从节点,当主节点发生宕机时,可进行故障转移,将子节点升级为主节点。

配置cluster集群

Redis 集群由多个运行在集群模式(cluster mode)下的 Redis 实例组成, 实例的集群模式需要通过配置来开启,以下是一个包含了最少选项的集群配置文件示例:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

cluster-enabled:打开集群模式
cluster-config-file:节点配置文件名,无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新
cluster-node-timeout:节点失联时间,当超过此毫秒,集群将自动切换主从节点。

要让集群正常运作至少需要三个主节点,而每个主节点都应该正确配置一个或者多个从节点。

启动集群

使用redis-cli --cluster create命令将节点合并成一个集群

redis-cli --cluster create --cluster-replicas 1  127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

 --cluster-replicas 1 这个指的是从机的数量,表示我们希望为集群中的每个主节点创建一个从节点。

进入集群模式只需要使用redis-cli -c命令

redis-cli -c -p 7000

无中心话节点,所以进入任意一个端口号的主节点即可。

Atas ialah kandungan terperinci Apakah tiga cara pengelompokan redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam