Rumah > Artikel > pangkalan data > Bagaimana untuk mengkonfigurasi redis master-slave di bawah Docker
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
<.>
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]#5.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 1rreeeJika ia muncul : bash: vim: command not found
Penyelesaian: 1. apt-get update 2. apt-get install vim[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 exitMudah untuk diperhatikan, mulakan Berbilang tetingkap.
konfigurasi sentinel selesai
5.6, ujian
Close master
[root@tcy1 tcy]# docker exec -it a9fa77adc598 /bin/bash root@a9fa77adc598:/data# cd / && touch sentinel.conf root@a9fa77adc598:/# vim /sentinel.confPada 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.
rreeeeAtas 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!