Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengkonfigurasi redis master-slave di bawah Docker

Bagaimana untuk mengkonfigurasi redis master-slave di bawah Docker

WBOY
WBOYke hadapan
2023-05-28 11:19:061061semak imbas

1. Tarik imej redis

docker pull redis

2 Mulakan 3 perkhidmatan kontena redis, masing-masing menggunakan 6379, 6380 dan 6381. Port

docker run --name redis-6379 -p 6379:6379 -d redis
docker run --name redis-6380 -p 6380:6379 -d redis
docker run --name redis-6381 -p 6381:6379 -dredis

3 Lihat bekas

[tcy@tcy1 ~]$ docker ps -a
container id  image      command    created    status    ports     names
a9fa77adc598  daocloud.io/library/redis "docker-entrypoint.s 2 hours ago   up 2 hours   0.0.0.0:6381->6379/tcp redis-6381   
6ee2f2f007e6  daocloud.io/library/redis "docker-entrypoint.s 2 hours ago   up 2 hours   0.0.0.0:6380->6379/tcp redis-6380   
ab54741166e1  daocloud.io/library/redis "docker-entrypoint.s 3 hours ago   up 3 hours   0.0.0.0:6379->6379/tcp redis-6379

4 5. Mulakan konfigurasi kelompok redis

5.1 Semak alamat IP intranet bekas

[root@tcy1 tcy]# docker inspect a9fa77adc598
<.>

Alamat IP intranet bagi tiga redis ialah:

docker exec -it ab54741166e1 redis-cli:进入容器
[root@tcy1 tcy]# docker exec -it ab54741166e1 redis-cli
127.0.0.1:6379> set b tcy
ok
127.0.0.1:6379> get b
"tcy"
127.0.0.1:6379> quit[root@tcy1 tcy]#
Bagaimana untuk mengkonfigurasi redis master-slave di bawah Docker5.2 Masuk ke dalam bekas docker dan semak peranan redis semasa (tuan atau hamba)

redis-6379:172.17.0.1:6379
redis-6380:172.17.0.2:6379
redis-6381:172.17.0.3:6379

Pada masa ini ketiga-tiganya. adalah Master Status

5.3 Gunakan perintah redis-cli untuk mengubah suai hos redis-6380 dan redis-6381 kepada 172.17.0.1:6379

[root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bash
root@ab54741166e1:/data# redis-cli
127.0.0.1:6379> info replication
# replication
role:master
connected_slaves:0
master_replid:d43d1ae8cde6cb084220e18b926aba79e0bb2504
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379> quit
root@ab54741166e1:/data# exit 
exit

5.4. Lihat redis -6379 Adakah ia sudah mempunyai 2 mesin hamba, connected_slaves:2, ya

[root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash  //redis-6380
root@a9fa77adc598:/data# redis-cli
127.0.0.1:6379> slaveof 172.17.0.1 6379
ok
127.0.0.1:6379> quit
root@a9fa77adc598:/data# exit
exit
[root@tcy1 tcy]# docker exec -it 6ee2f2f007e6 /bin/bash //redis-6381
root@6ee2f2f007e6:/data# redis-cli
127.0.0.1:6379> slaveof 172.17.0.1 6379
ok
127.0.0.1:6379> quit

5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5. Konfigurasi, buat fail sentinel.conf

dalam direktori akar kontena ialah: sentinel monitor mymaster 172.17.0.1 6379 1

rreeeJika ia muncul : bash: vim: command not found

Penyelesaian: 1. apt-get update 2. apt-get install vim


Akhir sekali, mulakan redis sentinel:

[root@tcy1 tcy]# docker exec -it ab54741166e1 /bin/bash
root@ab54741166e1:/data# redis-cli
127.0.0.1:6379> info replication
# replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=378,lag=1
slave1:ip=172.17.0.2,port=6379,state=online,offset=378,lag=0
master_replid:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:378
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:378
127.0.0.1:6379> quit
root@ab54741166e1:/data# exit
exit

Mudah untuk diperhatikan, mulakan Berbilang tetingkap.

konfigurasi sentinel selesai

5.6, ujian

Close masterBagaimana untuk mengkonfigurasi redis master-slave di bawah Docker

[root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash
root@a9fa77adc598:/data# cd / && touch sentinel.conf 
root@a9fa77adc598:/# vim /sentinel.conf

Pada masa ini, baki 2 The mesin hamba secara automatik akan memilih tuan baru Di sini, 172.17.0.2 dipilih sebagai tuan.

Lihat 172.17.0.2 dan jadi hos.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi redis master-slave di bawah Docker. 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