cari
Rumahpangkalan dataRedisPenjelasan terperinci tentang mod tuan-hamba kelompok Redis

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Redis, yang terutamanya memperkenalkan isu yang berkaitan dengan kluster, dan bercakap tentang mod tuan-hamba secara terperinci, termasuk kluster tuan-hamba kami, dsb. , mari kita ambil sama-sama lihat, semoga bermanfaat untuk semua.

Penjelasan terperinci tentang mod tuan-hamba kelompok Redis

Pembelajaran yang disyorkan: Tutorial video Redis

1.

Dalam pembangunan sebenar kami, tidak mungkin menggunakan hanya satu Redis dalam projek kejuruteraan atas sebab berikut:

(1) Daripada struktur, satu pelayan Redis akan mempunyai satu titik kegagalan dan satu pelayan perlu mengendalikan semua beban permintaan, Tekanan tinggi ;

(2) Daripada kapasiti , satu memori pelayan Redis mempunyai kapasiti terhad , malah pelayan Redis Kapasiti memori ialah 256G, dan semua memori tidak boleh digunakan sebagai memori storan Redis Secara umumnya, memori maksimum yang digunakan oleh satu Redis tidak boleh melebihi 20G.

(3) prestasi baca dan tulis pelayan Redis tunggal adalah terhad Menggunakan gugusan boleh meningkatkan keupayaan baca dan tulis .

2. Mod Master-slave

Pengenalan

Pada masa ini, Redis mempunyai tiga mod kelompok, iaitu: Mod master-slave, mod sentri, mod Kluster; mod master-slave ialah yang paling mudah daripada tiga mod dalam replikasi master-slave, merujuk kepada data pelayan Redis. Salin ke pelayan Redis lain. Yang pertama dipanggil nod induk (tuan/pemimpin), dan yang terakhir dipanggil nod hamba (hamba/pengikut).

Nota:

(1)Replikasi data adalah sehala , hanya dari nod induk kepada nod hamba. Tuan terutamanya untuk menulis, dan Hamba terutamanya untuk membaca.
(2) Secara lalai , setiap pelayan Redis ialah nod induk;
(3) Nod induk boleh mempunyai berbilang nod Hamba (atau tiada nod hamba), tetapi nod hamba hanya boleh mempunyai satu nod induk .

Fungsi

1 Lewahan data: Panas Utama. sandaran data direalisasikan melalui replikasi, yang merupakan kaedah redundansi data sebagai tambahan kepada kegigihan.
2. Pemulihan kegagalan : Apabila nod induk mengalami masalah, nod hamba boleh menyediakan perkhidmatan untuk mencapai pemulihan kegagalan yang cepat ia sebenarnya sejenis redundansi perkhidmatan.
3. Batu asas ketersediaan tinggi (cluster) : Replikasi tuan-hamba juga merupakan asas bagi pelaksanaan sentinel dan kelompok Oleh itu, replikasi tuan-hamba adalah asas ketersediaan tinggi Redis.
4. Pengimbangan beban : Berdasarkan replikasi tuan-hamba dan dengan pemisahan baca-tulis, nod induk boleh menyediakan perkhidmatan tulis dan nod hamba boleh menyediakan perkhidmatan baca (iaitu. tulis Apabila menggunakan data Redis, aplikasi harus menyambung ke nod induk, dan apabila membaca data Redis, aplikasi harus menyambung ke nod hamba) untuk berkongsi beban pelayan terutamanya dalam senario di mana terdapat kurang menulis dan lebih banyak membaca, berkongsi beban bacaan melalui berbilang nod hamba boleh meningkatkan keselarasan pelayan Redis.

Sebagai contoh, anda boleh menemui di laman web e-dagang kami bahawa produk hanya perlu dimuat naik sekali sahaja, tetapi ia boleh dilihat oleh pengguna beberapa kali , iaitu, "Tulis kurang dan baca lagi" Dalam kes ini, kita boleh menggunakan replikasi tuan-hamba untuk memisahkan bacaan dan penulisan , Mengurangkan tekanan pada pelayan:

3. Bina gugusan tuan-hamba

3.1 Kerja penyediaan

1. nama asal: redis.conf), dan dinamakan semula kepada: redis79.conf, redis80.conf,redis81.conf.

2 Ubah suai fail konfigurasi

(1) Ubah suai redis79. . conf

Ubah suai nombor port

port 6379

Tetapkan untuk dijalankan di latar belakang

daemonize:yes

Tetapkan nama fail log

logfile “6379.log"

Tetapkan Nama fail db

dbfilename dump6379.rdb

(2) Ubah suai redis80.conf

Ubah suai nombor port

port 6380

Tetapkannya untuk dijalankan di latar belakang

daemonize:yes

Tetapkan nama fail Id proses rakaman

pidfile /var/run/redis_6380.pid

Tetapkan nama fail log

logfile “6380.log"

Tetapkan nama fail db

dbfilename dump6380.rdb

(3) Ubah suai redis81.conf

Ubah suai nombor port

port 6381

Tetapkan untuk dijalankan di latar belakang

daemonize:yes

Tetapkan nama fail Id proses pengelogan

pidfile /var/run/redis_6381.pid

Tetapkan nama fail log

logfile “6381.log"

Tetapkan nama fail db

dbfilename dump6381.rdb

Fungsi atribut ini adalah seperti berikut:

pid(port ID): ID proses direkodkan, dan fail mempunyai kunci. Menghalang program daripada dimulakan beberapa kali.
fail log: Kosongkan lokasi fail log
dbfilename: dumpxxx.file #Lokasi fail berterusan
port: Port diduduki dengan proses No.

3.2 Sediakan satu tuan dan dua hamba

Mulakan pelayan Redis

Nota : Secara lalai, setiap pelayan Reids ialah nod induk, dan jika kita ingin membina nod induk-hamba, kita hanya perlu membinanya pada mesin hamba.

Sekarang mulakan masing-masing redis79, redis80, redis81pelayan.

redis-server redis79.conf 
redis-server redis80.conf
redis-server redis81.conf

Gunakan arahan berikut untuk menyemak sama ada permulaan berjaya:

 ps -ef|grep redis

Buka tiga Setiap tetingkap klien sepadan dengan operasi tiga pelayan Redis.

Masukkan arahan:

Perhatikan bahawa anda perlu menentukan port untuk mengetahui Redis yang ingin kami buka.

Tetingkap satu:

redis-cli -p 6379
Tetingkap dua:

redis-cli -p 6380
Tetingkap tiga:

redis-cli -p 6381
Tetapkan utama Daripada hubungan

kami menetapkan redis79 sebagai nod utama , sambil menetapkan redis80 dan redis81 ditetapkan kepada nod hamba .

Mengkonfigurasi alamat IP dan nombor port hos adalah sama dengan ingin mengenalinya sebagai bos anda.

redis80:

#SLAVEOF IP地址  端口
127.0.0.1:6380> slaveof 127.0.0.1 6379
OK

redis81:

#SLAVEOF IP地址  端口
127.0.0.1:6381> slaveof 127.0.0.1 6379
OK

这个时候,我们在从机使用INFO命令就可以查看主从关系了:

info replication

 而此时我们去主机redis79中使用同样的命令进行查看:

现在我们的一主二从的关系就成功搭建好了!

提示:如果要将从机变成主机,我们只需要在从机执行以下命令,即可让自己变为主机。

SLAVEOF no one

四、知识讲解

知识一

主机可以进行读写操作,而从机只能读操作。 

注意:主机中的所有信息和数据,都会自动被从机保存。

主机:

127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> get key1
"v1"

从机:

127.0.0.1:6380> get key1  
"v1"
127.0.0.1:6380> set key2 v2    #进行写操作就会报错,提示从机只能进行读操作
(error) READONLY You can't write against a read only replica.

 知识二

主机如果宕机了,从机依旧可以读取到主机宕机前的数据,但仍然没有写操作,如果主机恢复过来了,从机依旧可以获取到主机写的数据。

(1)停止主机进程(演示主机宕机了)

停止进程的命令:

kill -9 pid #pid为redis进程号

(2)从机获取宕机前主机写入的数据

可以发现,能够顺利拿到,但仍然是无法进行写操作的。

 (3)恢复主机

redis-server redis79.conf

(4)主机重新写入数据,从机获取最新数据。

主机写入数据:

127.0.0.1:6379> set k2 yixin
OK

从机读取最新数据:

127.0.0.1:6380> get k2
"yixin"

知识三

两种配置方式下的从机断开情况

a、命令行设置主从关系

从机断开了,其重新连接后变为主机,能拿到断开之前的数据,但拿不到主机新写入的值,如果重新设置主从关系,就可以拿到主机全部的数据了。

(1)停止从机进程。

 (2)主机写入新数据。

127.0.0.1:6379> set k3 new
OK

(3)重新启动从机服务器。

redis-server redis80.conf

(4)尝试获取从机宕机前主机写入的数据,发现可以拿到。

127.0.0.1:6380> get k1
"v1"

(5)尝试获取从机宕机期间主机写入的数据,发现无法拿到了。

127.0.0.1:6380> get k3
(nil)

此次我们可以进行查看主从关系,由于是命令行配置的,所以重启之后又变回主机了

127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:0

(6)如果要拿到主机的所有数据,只要执行以下命令重新配置主从关系就可以了。 

slaveof 127.0.0.1 6379

b、配置文件设置的主从关系

从机断开后,重新连接,也是可以拿到主机的全部数据的。

(1)修改配置文件redis80.conf,添加主从关系。

#指定主机的ip与port
slaveof 127.0.0.1 6379

(2)主机添加新数据

127.0.0.1:6379> set k5 hello
OK

(3)重新启动redis80服务器。

redis-server redis80.conf

(4)获取从机宕机期间主机新写入的数据,发现现在可以顺利拿到了。

127.0.0.1:6380> get k5
"hello"

我们来查看6380的主从关系,可以发现在重启的时候就已经设置好主从关系了

五、复制原理

(1)Slave 启动成功连接到 Master 后会发送一个sync同步命令

(2)Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步

(3)全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

(4)增量复制:Master 继续将新的所有收集到的修改命令依次传给slave,完成同步。

注意:只要是重新连接master,一次完全同步(全量复制)将被自动执行! 我们的数据一定可以在从机中看到。

六、主从模式的优缺点

优点

(1)同一个Master可以同步多个Slaves
(2)Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。因此我们可以将Redis的Replication架构视为图结构。
(3)Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。
(4)Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据。
(5)为了分载Master读操作压力Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
(6)Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
(7)支持主从复制,主机会自动将数据同步到从机,可以进行读写分离

缺点

(1) Redis 主从模式不具备自动容错和恢复功能,如果主节点宕机,Redis 集群将无法工作,此时需要人为干预,将从节点提升为主节点。
(2) 如果主机宕机前有一部分数据未能及时同步到从机,即使切换主机后也会造成数据不一致的问题,从而降低了系统的可用性。
(3) 因为只有一个主节点,所以其写入能力和存储能力都受到一定程度地限制。
(4) 在进行数据全量同步时,若同步的数据量较大可能会造卡顿的现象。

推荐学习:Redis视频教程

Atas ialah kandungan terperinci Penjelasan terperinci tentang mod tuan-hamba kelompok Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:CSDN. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Redis: Panduan untuk struktur data popularRedis: Panduan untuk struktur data popularApr 11, 2025 am 12:04 AM

Redis menyokong pelbagai struktur data, termasuk: 1. String, sesuai untuk menyimpan data nilai tunggal; 2. Senarai, sesuai untuk beratur dan susunan; 3. Tetapkan, digunakan untuk menyimpan data yang tidak duplikasi; 4. Diarahkan set, sesuai untuk senarai ranking dan beratur keutamaan; 5. Jadual hash, sesuai untuk menyimpan objek atau data berstruktur.

Cara Melaksanakan Kaunter RedisCara Melaksanakan Kaunter RedisApr 10, 2025 pm 10:21 PM

Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

Cara menggunakan baris arahan redisCara menggunakan baris arahan redisApr 10, 2025 pm 10:18 PM

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Cara Membina Mod Kluster RedisCara Membina Mod Kluster RedisApr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara Membaca Gilir RedisCara Membaca Gilir RedisApr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara Menggunakan Redis Cluster ZsetCara Menggunakan Redis Cluster ZsetApr 10, 2025 pm 10:09 PM

Penggunaan ZSET dalam Redis Cluster: ZSET adalah koleksi yang diperintahkan yang mengaitkan unsur -unsur dengan skor. Strategi Sharding: a. Hash Sharding: Mengedarkan nilai hash mengikut kunci ZSET. b. Pelbagai Sharding: Bahagikan ke dalam julat mengikut skor elemen, dan tetapkan setiap julat kepada nod yang berbeza. Baca dan tulis operasi: a. Baca Operasi: Jika kekunci ZSET adalah milik nod semasa, ia akan diproses secara tempatan; Jika tidak, ia akan dialihkan ke shard yang sepadan. b. Tulis Operasi: Sentiasa diarahkan ke Shards memegang kekunci ZSET.

Cara membersihkan data redisCara membersihkan data redisApr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara Menetapkan Dasar Tamat RedisCara Menetapkan Dasar Tamat RedisApr 10, 2025 pm 10:03 PM

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.

See all articles

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)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.