最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker-compose啟動redis集群的實現(xiàn)步驟

 更新時間:2022年07月13日 15:19:59   作者:開發(fā)運維玄德公  
本文主要介紹了docker-compose啟動redis集群的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

多機集群見我的另一篇文檔《docker-compose啟動redis多機集群(6臺服務器3主3從)》,此處是一個用于學習的偽集群。

1. 偽集群安裝

docker-compose.yml

創(chuàng)建redis-cluster目錄,目錄下創(chuàng)建docker-compose.yml文件如下

version: '2.2'

x-image:
?&default-image
?bitnami/redis-cluster:7.0
x-restart:
?&default-restart
?always

services:
? redis-node-0:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-0
? ? ports:
? ? ? - 6379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-0:/bitnami/redis/data
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

? redis-node-1:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-1
? ? ports:
? ? ? - 16379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-1:/bitnami/redis/data
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

? redis-node-2:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-2
? ? ports:
? ? ? - 26379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-2:/bitnami/redis/data
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

? redis-node-3:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-3
? ? ports:
? ? ? - 36379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-3:/bitnami/redis/data
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

? redis-node-4:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-4
? ? ports:
? ? ? - 46379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-4:/bitnami/redis/data
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
? redis-node-5:
? ? image: *default-image
? ? restart: *default-restart
? ? container_name: redis-node-5
? ? ports:
? ? ? - 56379:6379
? ? volumes:
? ? ? - ./redis-cluster_data-5:/bitnami/redis/data
? ? depends_on:
? ? ? - redis-node-0
? ? ? - redis-node-1
? ? ? - redis-node-2
? ? ? - redis-node-3
? ? ? - redis-node-4
? ? environment:
? ? ? - 'REDIS_PASSWORD=liubei@161'
? ? ? - 'REDIS_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

持久化存儲

我們直接啟動這些目錄是可以創(chuàng)建的,但是容器中沒有使用root用戶,一般服務器都不會有寫權限。因此

  • 我們手工創(chuàng)建這些目錄,先給讀寫權限。
  • 建議等啟動后,看到是對應宿主機哪個用戶了,我們再將目錄屬主改為哪個用戶。

創(chuàng)建存儲目錄

mkdir redis-cluster_data-{0..5}
chmod 777 redis-cluster-data-*

結果如下

[root@liubei redis-cluster]# ll
總用量 7
-rw-r----- 1 root root 2481 7月   6 10:21 docker-compose.yml
drwxrwxrwx 3 root root   61 7月   6 10:43 redis-cluster_data-0
drwxrwxrwx 3 root root   61 7月   6 10:43 redis-cluster_data-1
drwxrwxrwx 3 root root   61 7月   6 10:43 redis-cluster_data-2
drwxrwxrwx 3 root root   77 7月   6 10:51 redis-cluster_data-3
drwxrwxrwx 3 root root   77 7月   6 10:51 redis-cluster_data-4
drwxrwxrwx 3 root root   77 7月   6 10:51 redis-cluster_data-5

啟動集群

啟動集群

# docker-compose up -d 

查看結果

[root@liubei redis-cluster]# docker-compose ps
    Name                  Command               State            Ports
-------------------------------------------------------------------------------
redis-node-0   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:6379->6379/tcp
redis-node-1   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:16379->6379/tcp
redis-node-2   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:26379->6379/tcp
redis-node-3   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:36379->6379/tcp
redis-node-4   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:46379->6379/tcp
redis-node-5   /opt/bitnami/scripts/redis ...   Up      0.0.0.0:56379->6379/tcp

集群初始化

初始化集群

進入其中一個容器,執(zhí)行命令如下:

I have no name!@d4a8a3ef35ce:/$ redis-cli -a liubei@161 --cluster create redis-node-0:6379 redis-node-1:6379 redis-node-2:6379 redis-node-3:6379 redis-node-4:6379 redis-node-5:6379 --cluster-replicas 1

輸出如下:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica redis-node-4:6379 to redis-node-0:6379
Adding replica redis-node-5:6379 to redis-node-1:6379
Adding replica redis-node-3:6379 to redis-node-2:6379
M: 4cdf0f24f67eadb3b7a610fd9b5409a571cce8d3 redis-node-0:6379
   slots:[0-5460] (5461 slots) master
M: ee85d84a95793ee031a4b45fe3600ef81ecef7d1 redis-node-1:6379
   slots:[5461-10922] (5462 slots) master
M: f48ab32421dfe4405b73129d88f64a4ce4d076e3 redis-node-2:6379
   slots:[10923-16383] (5461 slots) master
S: 0315d864aec40531c9630d5e21959aea6837236e redis-node-3:6379
   replicates f48ab32421dfe4405b73129d88f64a4ce4d076e3
S: ec43dee472ce9f1531ccdbd0853cd672519ec2fe redis-node-4:6379
   replicates 4cdf0f24f67eadb3b7a610fd9b5409a571cce8d3
S: c834ba17bfdf0d498533355022e548b040083ed9 redis-node-5:6379
   replicates ee85d84a95793ee031a4b45fe3600ef81ecef7d1
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..
>>> Performing Cluster Check (using node redis-node-0:6379)
M: 4cdf0f24f67eadb3b7a610fd9b5409a571cce8d3 redis-node-0:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: ec43dee472ce9f1531ccdbd0853cd672519ec2fe 172.29.0.2:6379
   slots: (0 slots) slave
   replicates 4cdf0f24f67eadb3b7a610fd9b5409a571cce8d3
M: f48ab32421dfe4405b73129d88f64a4ce4d076e3 172.29.0.4:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: ee85d84a95793ee031a4b45fe3600ef81ecef7d1 172.29.0.5:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 0315d864aec40531c9630d5e21959aea6837236e 172.29.0.6:6379
   slots: (0 slots) slave
   replicates f48ab32421dfe4405b73129d88f64a4ce4d076e3
S: c834ba17bfdf0d498533355022e548b040083ed9 172.29.0.7:6379
   slots: (0 slots) slave
   replicates ee85d84a95793ee031a4b45fe3600ef81ecef7d1
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

查看集群狀態(tài)

redis-cli -h redis-node-0 -a liubei@161 cluster info

輸出信息如下:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:174
cluster_stats_messages_pong_sent:203
cluster_stats_messages_sent:377
cluster_stats_messages_ping_received:198
cluster_stats_messages_pong_received:174
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:377
total_cluster_links_buffer_limit_exceeded:0
I have no name!@c193f9814adb:/$

查看集群節(jié)點狀態(tài)

redis-cli -h redis-node-0 -a liubei@161 cluster nodes

輸出

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
921dd4fc8977562273e8f0f297d7809f5d785a96 192.168.0.2:6379@16379 myself,master - 0 1657079063000 1 connected 0-5460
e3be1ac5c4b5a8ea5789dd62aaa550cece718504 192.168.0.5:6379@16379 slave 921dd4fc8977562273e8f0f297d7809f5d785a96 0 1657079062000 1 connected
d45ea5232290aefd17ec87229b2b68be76061b84 192.168.0.6:6379@16379 slave 505a1c9a1e3bc8b7685a6cdf6aa1d82bd48cc95f 0 1657079063278 3 connected
88f0d7a2377bf876105925e330793091f2390a20 192.168.0.4:6379@16379 slave 477f835648ca3ddffa48af99a2e162e541277186 0 1657079062274 2 connected
505a1c9a1e3bc8b7685a6cdf6aa1d82bd48cc95f 192.168.0.7:6379@16379 master - 0 1657079064281 3 connected 10923-16383
477f835648ca3ddffa48af99a2e162e541277186 192.168.0.3:6379@16379 master - 0 1657079065285 2 connected 5461-10922

2. 測試

讀寫測試

以集群模式登錄

redis-cli -h redis-nod-1  -a liubei@161 -c

寫入數(shù)據(jù)

redis-node-1:6379> set name liubei
OK

在另一個節(jié)點上讀

I have no name!@ab2a18399901:/$ redis-cli -h redis-node-5 -a liubei@161 -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
redis-node-5:6379> get name
-> Redirected to slot [5798] located at 192.168.0.3:6379
"liubei"
192.168.0.3:6379>

我們可以看到,連接會跳到存儲這個key的節(jié)點上(192.168.0.3)。

key所在節(jié)點

登錄其中一個節(jié)點

redis-cli -h redis-node-0 -a liubei@161 -c

查看節(jié)點哈希槽編號的范圍

redis-node-0:6379> cluster slots
1) 1) (integer) 0
   2) (integer) 5460
   3) 1) "192.168.0.2"
      2) (integer) 6379
      3) "921dd4fc8977562273e8f0f297d7809f5d785a96"
      4) (empty array)
   4) 1) "192.168.0.5"
      2) (integer) 6379
      3) "e3be1ac5c4b5a8ea5789dd62aaa550cece718504"
      4) (empty array)
2) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "192.168.0.3"
      2) (integer) 6379
      3) "477f835648ca3ddffa48af99a2e162e541277186"
      4) (empty array)
   4) 1) "192.168.0.4"
      2) (integer) 6379
      3) "88f0d7a2377bf876105925e330793091f2390a20"
      4) (empty array)
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.0.7"
      2) (integer) 6379
      3) "505a1c9a1e3bc8b7685a6cdf6aa1d82bd48cc95f"
      4) (empty array)
   4) 1) "192.168.0.6"
      2) (integer) 6379
      3) "d45ea5232290aefd17ec87229b2b68be76061b84"
      4) (empty array)

查看name的哈希槽編號

redis-node-0:6379> cluster keyslot name
(integer) 5798

通過第一步查看節(jié)點哈希槽編號的范圍我們可以看到5798 這個編號在 192.168.0.3 上

如果我們不用集群模式登錄,只能在該節(jié)點上讀取到這個key值。

集群模式驗證是否準確

redis-node-0:6379> get name
-> Redirected to slot [5798] located at 192.168.0.3:6379
"liubei"
192.168.0.3:6379>

集群模式登錄,查找這個key,我們的連接跳到了 192.168.0.3上。

非集群模式登錄查看

登錄其他節(jié)點,會提示我們這個key存在了192.168.0.3上

I have no name!@ab2a18399901:/$ redis-cli -h 192.168.0.5 -a liubei@161
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.5:6379> get name
(error) MOVED 5798 192.168.0.3:6379

只有登錄這個節(jié)點才能查詢到值

I have no name!@ab2a18399901:/$ redis-cli -h 192.168.0.3 -a liubei@161
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.3:6379> get name
"liubei"

到此這篇關于docker-compose啟動redis集群的實現(xiàn)步驟的文章就介紹到這了,更多相關docker-compose啟動redis集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker?compose啟動服務遇到的問題小結

    Docker?compose啟動服務遇到的問題小結

    這篇文章主要介紹了Docker?compose啟動服務遇到的問題小結,這個是檢驗我們的docker?compose掌握程度,因此里面的鏡像沒有提前拉取,掛載數(shù)據(jù)卷的目錄也沒有提前創(chuàng)建,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • docker安裝openjdk并運行jar包的操作方法

    docker安裝openjdk并運行jar包的操作方法

    這篇文章主要介紹了docker安裝openjdk并運行jar包的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • docker-compose安裝RabbitMQ及插件操作步驟

    docker-compose安裝RabbitMQ及插件操作步驟

    這篇文章主要為大家介紹了docker-compose安裝RabbitMQ及插件操作步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 使用docker部署django的詳細步驟

    使用docker部署django的詳細步驟

    當用Django框架開發(fā)的網(wǎng)站項目完成后上線的話可以用物理主機、虛擬機來部署,也可以容器,下面這篇文章主要給大家介紹了關于使用docker部署django的詳細步驟,需要的朋友可以參考下
    2022-08-08
  • 如何使用 docker compose 搭建 fastDFS文件服務器

    如何使用 docker compose 搭建 fastDFS文件服務器

    這篇文章主要介紹了如何使用 docker compose 搭建 fastDFS文件服務器,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 云原生之使用Docker部署homer靜態(tài)主頁的方法步驟

    云原生之使用Docker部署homer靜態(tài)主頁的方法步驟

    本文主要介紹了云原生之使用Docker部署homer靜態(tài)主頁的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • 開啟Docker的TCP通信端口方式

    開啟Docker的TCP通信端口方式

    這篇文章主要介紹了開啟Docker的TCP通信端口方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker entrypoint入口文件詳解

    docker entrypoint入口文件詳解

    這篇文章主要介紹了docker entrypoint入口文件詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • docker search 搜索鏡像的實現(xiàn)示例

    docker search 搜索鏡像的實現(xiàn)示例

    本文主要介紹了docker search搜索鏡像的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • 如何通過Docker制作wsl的tar文件

    如何通過Docker制作wsl的tar文件

    這篇文章主要介紹了通過Docker制作wsl的tar文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論

乌兰浩特市| 谷城县| 合川市| 延津县| 河南省| 克什克腾旗| 宣威市| 衢州市| 梁平县| 佛教| 积石山| 金川县| 荥阳市| 威信县| 岢岚县| 普安县| 高邮市| 南昌县| 九江市| 民县| 宁德市| 上饶县| 江永县| 凤冈县| 万全县| 额济纳旗| 巩义市| 厦门市| 乃东县| 龙南县| 华蓥市| 闸北区| 敦煌市| 科技| 万州区| 梁山县| 柯坪县| 平武县| 正蓝旗| 蕲春县| 临西县|