亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker搭建redis集群的方法

發布時間:2021-07-06 10:31:16 來源:億速云 閱讀:239 作者:chen 欄目:大數據

本篇內容主要講解“docker搭建redis集群的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“docker搭建redis集群的方法”吧!

之前用redis單機搭建過偽集群,但是到了真實環境才發現處處是坑

搭建條件 3臺宿主機 同時安裝docker和docker-compose 可以用vm虛擬三臺 6個集群。

三臺服務器分別是 192.168.65.133、192.168.65.134、192.168.65.135

  1. 第一步 首先在任意一臺服務器,新建一個文件(主要是為了存放redis數據和一些配置信息)。 新建一個 redis 文件,在redis文件中再新建一個master和slave,因為一臺機器上要放兩個redis實例(機器有限,當然每個reids的master不要和slave放在同一臺機器上) 如圖:docker搭建redis集群的方法 以master為列,創建好之后 分別創建 docker-compose.yml文件和redis.conf文件,創建數據目錄data 如圖:docker搭建redis集群的方法

  2. docker-compose.yml:

version: '3.3'
services:
  redis-master:
    image: redis:latest
    container_name: redis-master
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf
    network_mode: host
    ports:
      - "6379:6379"
      - "16379:16379"
    volumes:
      - /home/docker_container/redis/master/data:/data
      - /home/docker_container/redis/master/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /home/docker_container/redis/master/log/redis.log:/root/redis/redis.log

上述network:host是為了解決Waiting for the cluster to join....................一直沒有成功

redis.conf #bind 192.168.65.133 127.0.0.1 #必須要注釋 port 6379 #端口 protected-mode no #requirepass admin #masterauth admin daemonize no appendonly yes cluster-enabled yes cluster-node-timeout 15000 cluster-config-file nodes.conf

對應的192.168.65.133 上slave也配置一份需要修改配置文件 docker-compose.yml和redis.conf文件 docker-compose.yml version: '3.3' services: redis-slave: image: redis:latest container_name: redis-slave restart: always command: redis-server /usr/local/etc/redis/redis.conf network_mode: host ports: - "6380:6380" - "16380:16380" volumes: - /home/docker_container/redis/slave/data:/data - /home/docker_container/redis/slave/conf/redis.conf:/usr/local/etc/redis/redis.conf

redis.conf #bind 0.0.0.0 port 6380 protected-mode no #requirepass admin #masterauth admin daemonize no appendonly yes cluster-enabled yes cluster-node-timeout 15000 cluster-config-file nodes.conf 主要是改端口,上述配置文件 docker-compose.yml文件中 - "16380:16380" 是集群通信端口 我一般就是在redis 端口上+10000 把所有文件都準備好了之后,用docker-compose up -d 啟動master和slave的redis,并查看啟動情況,啟動沒啥問題, 就可以把redis文件用 scp -r 命令 copy到另外兩臺服務器。 然后用docker-compose up -d 啟動剩下的redis 一共是 6個redis. 啟動完成后,我們就可以用 redis-trib 集群 redis. 可以在任意一臺機器上輸入集群命令: docker run --rm -it inem0o/redis-trib create --replicas 1 192.168.65.133:6379 192.168.65.133:6380 192.168.65.134:6379 192.168.65.134:6380 192.168.65.135:6379 192.168.65.135:6380 會出現: `>>> Creating cluster

Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.30.70:7001 192.168.30.70:7002 192.168.30.70:7003 Adding replica 192.168.30.70:7004 to 192.168.30.70:7001 Adding replica 192.168.30.70:7005 to 192.168.30.70:7002 Adding replica 192.168.30.70:7006 to 192.168.30.70:7003 M: 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 192.168.30.70:7001 slots:0-5460 (5461 slots) master M: bb8fda08e1dcd39e937443f81b5458e80f52d804 192.168.30.70:7002 slots:5461-10922 (5462 slots) master M: d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 192.168.30.70:7003 slots:10923-16383 (5461 slots) master S: 52eee69afa751d71c84d5436d14b0e16a37536fa 192.168.30.70:7004 replicates 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 S: 701ed2fbb3df9fc63b083818620f5c020d05e323 192.168.30.70:7005 replicates bb8fda08e1dcd39e937443f81b5458e80f52d804 S: a3548a9dffa225f05786ea2289db65f5f1c623be 192.168.30.70:7006 replicates d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 Can I set the above configuration? (type 'yes' to accept):`

輸入** yes** ` Waiting for the cluster to join.....

Performing Cluster Check (using node 192.168.30.70:7001) M: 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 192.168.30.70:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) M: d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 192.168.30.70:7003@17003 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: a3548a9dffa225f05786ea2289db65f5f1c623be 192.168.30.70:7006@17006 slots: (0 slots) slave replicates d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 S: 701ed2fbb3df9fc63b083818620f5c020d05e323 192.168.30.70:7005@17005 slots: (0 slots) slave replicates bb8fda08e1dcd39e937443f81b5458e80f52d804 S: 52eee69afa751d71c84d5436d14b0e16a37536fa 192.168.30.70:7004@17004 slots: (0 slots) slave replicates 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 M: bb8fda08e1dcd39e937443f81b5458e80f52d804 192.168.30.70:7002@17002 slots:5461-10922 (5462 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration.

Check for open slots... Check slots coverage... [OK] All 16384 slots covered. `

master和slave應該是可以通過集群順序調整,沒有嘗試過,不知道是不是這樣。 docker run --rm -it inem0o/redis-trib check 192.168.65.133:6379測試是否連接上集群

搭建集群采坑 1、創建集群的時候會遇到Waiting for the cluster to join....................一直沒有成功 修改 網絡模式改成host,docker run 的方式加上--net host,在每個redis的docker-compose方式加上network_mode: host。 2、防火墻未關閉會導致或者redis未正確啟動 錯誤:can't connect to node 192.168.65.134:6379 解決方案:關閉防火墻

關閉防火墻

systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動

開啟端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 如果還是不行,需要去檢查redis是否 啟動成功,可以嘗試在訪問其他端口,看能不能連上 大部分原因可能是 redis.conf配置問題,配置文件 bind 參數配置或者其他配置不對 docker搭建redis集群的方法 注釋掉或者 改為0.0.0.0 試著改為ip 加127.0.0.1 還是有問題 3、redis-cli 連接集群時 加上 -c 參數 redis-cli -c -h yourhost -p yourpost

集群密碼設置: 使用redis-trib.rb工具構建集群,集群構建完成前不要配置密碼,集群構建完畢再通過config set + config rewrite命令逐個機器設置密碼 如果對集群設置密碼,那么requirepass和masterauth都需要設置,否則發生主從切換時,就會遇到授權問題 各個節點的密碼都必須一致,否則Redirected就會失敗 具體指令如下: 第一種 集群密碼 cd /mnt/redis-cluster; chmod 777 9001/conf/redis.conf; //配置文件授權 ... chmod 777 9003/conf/redis.conf; //兩臺配置文件都需要授權

//鏈接redis docker ps -a //查看容器ID

//5.0.2 docker run -it --link redis-9001:redis --net redis-net --rm redis redis-cli -h XX.XXX.XX.XX -c -p 9001 //5.0(這里設置的是單臺redis的密碼,所以需要每臺redis都要進入執行以下操作設置密碼) docker exec -it redis容器ID redis-cli -h XX.XXX.XX.XX -c -p 9001

第二種 //設置密碼 config set masterauth 123456 config set requirepass 123456 auth 123456 config rewrite

設置masterauth config set masterauth 密碼

設置requirepass config set requirepass 密碼

驗證密碼,以繼續操作 auth LinShen

回寫到文件,使其永久生效(如果這里出現Permission denied,則說明Dockerfile少了RUN chmod 777 /usr/local/etc/redis/redis.conf) config rewrite

到此,相信大家對“docker搭建redis集群的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北县| 寿阳县| 金门县| 武隆县| 法库县| 城市| 湖北省| 广东省| 桐城市| 石棉县| 洛宁县| 墨脱县| 丰城市| 永平县| 莱阳市| 尖扎县| 临猗县| 永修县| 泰安市| 扶绥县| 英德市| 九龙县| 长寿区| 凤翔县| 达州市| 白银市| 昌黎县| 定兴县| 措美县| 石棉县| 富裕县| 恭城| 周至县| 永登县| 麦盖提县| 芷江| 京山县| 芮城县| 南漳县| 瑞昌市| 吴堡县|