Bagaimana untuk membina kluster Redis berdasarkan Docker
Persekitaran: Docker + (Redis:5.0.5 * 3)
1 Tarik imej
docker pull redis:5.0.5
2 🎜 >
Buat tiga bekas redis:- redis-node1:6379
- redis-node2:6380
- redis-node3: 6381
docker create --name redis-node1 -v /data/redis-data/node1:/data -p 6379:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf docker create --name redis-node2 -v /data/redis-data/node2:/data -p 6380:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf docker create --name redis-node3 -v /data/redis-data/node3:/data -p 6381:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf
Mula-mula mulakan tiga bekas Redis melalui arahan
: docker start
, anda boleh melihatnya melalui Exited (1) 3 seconds ago
: docker logs
chmod -R 777 /data
执行「docker inspect redis-node1」得到 redis-node1 ip 信息为:172.17.0.4 执行「docker inspect redis-node2」得到 redis-node2 ip 信息为:172.17.0.3 执行「docker inspect redis-node3」得到 redis-node3 ip 信息为:172.17.0.2
# 这里以进入 node1 为例 docker exec -it redis-node1 /bin/bash # 接着执行组建集群命令(请根据自己的ip信息进行拼接) redis-cli --cluster create 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 --cluster-replicas 0
untuk menyambung ke nod kluster, dan kemudian tetapkan nilai Selepas nilai yang ditetapkan, ia akan mengubah hala secara automatik ke alamat ip 0.2, dan kemudian mendapatkannya melalui mendapatkan untuk mendapatkan sijil kejayaan Kluster adalah sah. redis-cli -c
dsb. Jika projek menggunakan ip地址
tidak berada pada pelayan yang sama dengan kluster, maka projek itu tidak boleh menggunakan kluster kerana ia tidak boleh diakses. 172.17.0.2
redis集群
Satu penyelesaian ialah membenarkan
menggunakan jenis sambungan rangkaian dan Dockerhost模式
menggunakan The kontena yang dicipta tidak mempunyai ruang nama rangkaian bebasnya sendiri Ia berkongsi ruang rangkaian dengan mesin fizikal, dan boleh berkongsi semua port dan IP host模式
mesin fizikal, supaya rangkaian awam boleh mengakses kontena secara terus. . Walaupun kaedah ini mempunyai risiko keselamatan, tiada mod lain yang boleh dilaksanakan telah ditemui. Mengenai masalah yang ada, kami mengguna pakai semula
host模式
1 Hentikan bekas yang sedang berjalan
docker stop redis-node1 redis-node2 redis-node3
2 bekas
docker rm redis-node1 redis-node2 redis-node3 # 清空上面创建的配置文件 rm -rf /data/redis-data/node*
3. Cipta
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379 docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380 docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
berdasarkan mod hos sekali lagi Ia berbeza daripada arahan penciptaan sebelumnya. Kedua, tiada port diperlukan dalam kes ini, seperti
, kerana perkhidmatan port kontena perlu dikongsi secara luaran pada masa ini, jadi anda hanya perlu menentukan port yang terdedah secara luaran, --net
, dll. host
-p 6379:6379
-p 6379
-p 6380
# 启动命令 docker start redis-node1 redis-node2 redis-node3 # 进入某一个容器 docker exec -it redis-node1 /bin/bash # 组建集群,10.211.55.4为当前物理机的ip地址 redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 --cluster-replicas 0

6. Uji gugusan
untuk menyambung ke gugusan,
nilai, dan kemudian dapatkan nilai daripada nod lain untuk melihat sama ada ia berjaya:root@CentOS7:/data# redis-cli
127.0.0.1:6379> cluster nodes
72c291c32815194b64d1f6d0fdf771f5cc04e14a 10.211.55.4:6380@16380 master - 0 1590905997358 2 connected 5461-10922
6a595b67bbff15c94e5874c2d2cd556d6a6a6c17 10.211.55.4:6381@16381 master - 0 1590905998362 3 connected 10923-16383
4e3dbdc8f835dcbc38291c88f08165ee51d53d3d 10.211.55.4:6379@16379 myself,master - 0 1590905997000 1 connected 0-5460
127.0.0.1:6379>
Salin selepas log masuk
root@CentOS7:/data# redis-cli 127.0.0.1:6379> cluster nodes 72c291c32815194b64d1f6d0fdf771f5cc04e14a 10.211.55.4:6380@16380 master - 0 1590905997358 2 connected 5461-10922 6a595b67bbff15c94e5874c2d2cd556d6a6a6c17 10.211.55.4:6381@16381 master - 0 1590905998362 3 connected 10923-16383 4e3dbdc8f835dcbc38291c88f08165ee51d53d3d 10.211.55.4:6379@16379 myself,master - 0 1590905997000 1 connected 0-5460 127.0.0.1:6379>
redis-cli -c
Atas ialah kandungan terperinci Bagaimana untuk membina kluster Redis berdasarkan 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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











Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Docker Container Startup Langkah: Tarik Imej Bekas: Run "Docker Pull [Mirror Name]". Buat bekas: Gunakan "Docker Buat [Pilihan] [Nama Mirror] [Perintah dan Parameter]". Mulakan bekas: Jalankan "Docker Start [Nama Container atau ID]". Semak Status Kontena: Sahkan bahawa bekas sedang berjalan dengan "Docker PS".

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Buat bekas di Docker: 1. Tarik Imej: Docker Pull [Nama Cermin] 2. Buat bekas: Docker Run [Options] [Mirror Name] [Command] 3. Mulailah bekas: Docker Start [Nama Container]
