docker exec -it redis-node-1 /bin/bash



Bagaimana untuk membina kelompok tiga tuan dan tiga hamba redis dengan docker
Sediakan imej dan bekas redis
1.1 Muat turun redis6.0.8
docker pull redis:6.0.8
1.2 Sediakan 6 fail konfigurasi pelayan
# redis出场配置放在文章最后 mkdir -p /usr/local/repository/redis/redis-node-1 # 配置参考文章最后 vim /usr/local/repository/redis/redis-node-1/redis.conf cd /usr/local/repository/redis # 依次复制其他5份 cp -r redis-node-1/ ./redis-node-2
1.3 Cipta 6 bekas redis
docker run -d --name redis-node-1 --net host --privileged=true -v /usr/local/repository/redis/redis-node-1/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-1/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --net host --privileged=true -v /usr/local/repository/redis/redis-node-2/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-2/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382 docker run -d --name redis-node-3 --net host --privileged=true -v /usr/local/repository/redis/redis-node-3/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-3/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383 docker run -d --name redis-node-4 --net host --privileged=true -v /usr/local/repository/redis/redis-node-4/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-4/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384 docker run -d --name redis-node-5 --net host --privileged=true -v /usr/local/repository/redis/redis-node-5/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-5/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385 docker run -d --name redis-node-6 --net host --privileged=true -v /usr/local/repository/redis/redis-node-6/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-6/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
docker exec -it redis-node-1 /bin/bash
Salin selepas log masuk
2.2 Bina hubungan tuan-hambadocker exec -it redis-node-1 /bin/bash
redis-cli --cluster create 192.168.202.200:6381 192.168.202.200:6382 192.168.202.200:6383 192.168.202.200:6384 192.168.202.200:6385 192.168.202.200:6386 --cluster-replicas 1 # --cluster-replicas 1 表示为每个master创建一个slave节点
# 进入任意redis容器,这里以6381为例
redis-cli -p 6381
cluster info
cluster nodes
Salin selepas log masuk
# 进入任意redis容器,这里以6381为例 redis-cli -p 6381 cluster info cluster nodes
# 重新进入6381,-c可以防止路由失效((error) MOVED 12706 192.168.202.200:6383),往其他服务器hash槽存数据时报错。 redis-cli -p 6381 -c set k1 v1 set k2 v2
< .
3.2.2 Mulakan Semula 6381
Selepas dimulakan semula, kami mendapati bahawa 6381 masih merupakan mesin hamba dan 6384 ialah mesin induk. Apabila orang pergi, teh sejuk. Untuk menukarnya kembali, hanya berhenti dan mulakan 6384.
# 停止6381,机器,查看集群状态 docker stop redis-node-1 # 进入6382容器,查看集群状态 docker exec -it redis-node-2 bash

# 进入容器后先进入redis redis-cli -p 6382 -c # 查看集群信息 cluster nodes
# 先启动6381,再重启6384,即可将6381变为主机器。这里不做测试。 docker stop redis-node-4 docker start redis-node-4

redis-cli --cluster check 自己IP:6381
4.3 Gunakan nod 6387 yang baru ditambah (nombor slot kosong) sebagai nod induk Sertai kluster asal
# 到宿主机上,准备配置文件 cd /usr/local/repository/redis # 参考上面6台机器,生成配置文件 # 启动6387及6388两个容器 docker run -d --name redis-node-7 --net host --privileged=true -v /usr/local/repository/redis/redis-node-7/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-7/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387 docker run -d --name redis-node-8 --net host --privileged=true -v /usr/local/repository/redis/redis-node-8/redis.conf:/etc/redis/redis.conf -v /usr/local/repository/redis/redis-node-8/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388 # 查看容器是否创建成功 docker ps
4.5 Semak status kluster buat kali pertama
docker exec -it redis-node-7 /bin/bash
# 将新增的6387作为master节点加入集群
redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381
6387 就是将要作为master新增节点
6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群
Salin selepas log masuk
# 将新增的6387作为master节点加入集群 redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381 6387 就是将要作为master新增节点 6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群
4.7 Semak status kelompok untuk kali kedua
redis-cli --cluster check 真实ip地址:6381 # 执行结果可以看出暂时没有槽号
# 重新分派槽号 # 命令:redis-cli --cluster reshard IP地址:端口号 redis-cli --cluster reshard 192.168.202.200:6381 # 4096 下面的是接收hash槽的redis容器ID,这里是6387对应的id # source node :从哪些原来的主机上分配资源下来,all表示全部master
4.8 Nod induk 6387 Tetapkan nod hamba 6388
redis-cli --nod tambah kluster 192.168.202.200:6388 192.168.202.200:6387 --kluster-hamba --kluster-master-id4784b4ed14781b4ed14d6b4d14d6b4d1 31451 ------- Ini ialah nombor 6387, mengikut situasi Sebenar anda sendiri
4.9 Menyemak situasi kelompok untuk kali ketiga
redis-cli --cluster check 真实ip地址:6381
# 槽号分派说明 为什么6387是3个新的区间,以前的还是连续? 重新分配成本太高,所以前3家各自匀出来一部分,从6381/6382/6383三个旧节点分别匀出1364个坑位给新节点6387

redis-cli --cluster check 192.168.202.200:6382
5.3 Kosongkan nombor slot 6387 dan edarkannya semula Dalam contoh ini, semua nombor slot yang telah dibersihkan akan diberikan kepada 6381
redis-cli --cluster check 192.168.202.200:6382
5.4 Semak status kelompok untuk kali kedua
# 命令:redis-cli --cluster del-node ip:从机端口 从机6388节点ID redis-cli --cluster del-node 192.168.202.200:6388 6388节点redis容器ID
5.5 Padam 6387
redis-cli --cluster reshard 192.168.202.200:6381
5.6 Semak situasi kelompok untuk kali ketiga
# 4096个槽位都指给6381,它变成了8192个槽位,相当于全部都给6381了 # 如果想平均分配的话可以多次分配,每次分配指定hash槽数 redis-cli --cluster check 192.168.202.200:6381
Lampirkan: fail konfigurasi kilang redis
# 命令:redis-cli --cluster del-node ip:端口 6387节点ID redis-cli --cluster del-node 192.168.202.200:6387 ce1263dbe9e034e99fea8359f0177dde57ea6367
Atas ialah kandungan terperinci Bagaimana untuk membina kelompok tiga tuan dan tiga hamba redis dengan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

Menggunakan REDIS untuk mengunci operasi memerlukan mendapatkan kunci melalui arahan SETNX, dan kemudian menggunakan perintah luput untuk menetapkan masa tamat tempoh. Langkah-langkah khusus adalah: (1) Gunakan arahan SETNX untuk cuba menetapkan pasangan nilai utama; (2) Gunakan perintah luput untuk menetapkan masa tamat tempoh untuk kunci; (3) Gunakan perintah DEL untuk memadam kunci apabila kunci tidak lagi diperlukan.

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.
