1. 程式人生 > >Docker下redis的主從配置

Docker下redis的主從配置

1、拉取redis映象

[[email protected] ~]$ docker pull daocloud.io/library/redis:latest

2、啟動3個redis容器服務,分別使用到6379、6380、6381埠

docker run --name redis-6379 -p 6379:6379 -d daocloud.io/library/redis
docker run --name redis-6380 -p 6380:6379 -d daocloud.io/library/redis

docker run --name redis-6381 -p 6381:6379 -d daocloud.io/library/redis

3、檢視容器

[[email protected] ~]$ docker ps
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、測試容器,成功

docker exec -it ab54741166e1 redis-cli:進入容器

[[email protected] 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[[email protected] tcy]#

5、開始redis叢集配置

5.1、看容器內網的ip地址

[[email protected] tcy]# docker inspect a9fa77adc598


3個redis的內網ip地址為:

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

5.2、進入docker容器內部,檢視當前redis角色(主還是從)

[[email protected] tcy]# docker exec -it ab54741166e1 /bin/bash
[email protected]:/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
[email protected]:/data# exit 
exit

目前三個都是master狀態

5.3、使用redis-cli命令修改redis-6380、redis-6381的主機為172.17.0.1:6379

[[email protected] tcy]# docker exec -it a9fa77adc598 /bin/bash    //redis-6380
[email protected]:/data# redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.1 6379
OK
127.0.0.1:6379> quit
[email protected]:/data# exit
exit
[[email protected] tcy]# docker exec -it 6ee2f2f007e6 /bin/bash  //redis-6381
[email protected]:/data# redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.1 6379
OK
127.0.0.1:6379> quit

5.4、檢視redis-6379是否已經擁有2個從機,connected_slaves:2,是的

[[email protected] tcy]# docker exec -it ab54741166e1 /bin/bash
[email protected]:/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
[email protected]:/data# exit
exit

5.5、配置Sentinel哨兵

進入3臺redis容器內部進行配置,在容器根目錄裡面建立sentinel.conf檔案

檔案內容為:sentinel monitor mymaster 172.17.0.1 6379 1

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

如果出現:bash: vim: command not found

解決:1、apt-get update          2、apt-get install vim

最後,啟動Redis哨兵:

[email protected]:/# redis-sentinel /sentinel.conf
342:X 24 Jun 11:37:58.934 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
342:X 24 Jun 11:37:58.957 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=342, just started
342:X 24 Jun 11:37:58.958 # Configuration loaded
342:X 24 Jun 11:37:58.959 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
342:X 24 Jun 11:37:58.959 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
342:X 24 Jun 11:37:58.960 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.10 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 342
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

342:X 24 Jun 11:37:59.068 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
342:X 24 Jun 11:37:59.089 # Sentinel ID is dfd5a5bfe1036b1df3395c4ba858329034fc5b7e
342:X 24 Jun 11:37:59.091 # +monitor master mymaster 172.17.0.1 6379 quorum 1
342:X 24 Jun 11:37:59.110 * +slave slave 172.17.0.3:6379 172.17.0.3 6379 @ mymaster 172.17.0.1 6379
342:X 24 Jun 11:37:59.115 * +slave slave 172.17.0.2:6379 172.17.0.2 6379 @ mymaster 172.17.0.1 6379

342:X 24 Jun 11:39:27.601 * +sentinel sentinel ba9b0d0539d8273edfcbd922fe138f50daa78bbb 172.17.0.2 26379 @ mymaster 172.17.0.1 6379
342:X 24 Jun 11:41:59.144 * +sentinel sentinel f0510f8582b72c056531f219397ed8826683e665 172.17.0.1 26379 @ mymaster 172.17.0.1 6379

便於觀察,開多個視窗。


Sentinel哨兵配置完畢。

5.6、測試

關閉Master

[[email protected] ~]$ docker stop ab54741166e1
ab54741166e1

這時,剩餘的2個從機,會自動選舉產生新的主機,這裡選舉172.17.0.2為主機。

檢視172.17.0.2,變成了主機。

[[email protected] /]# docker exec -it 6ee2f2f007e6 /bin/bash
[email protected]:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=172.17.0.3,port=6379,state=online,offset=66906,lag=1
master_replid:5a7489c8181ddf0d73d418d30d6a4c8e039198ba
master_replid2:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6d
master_repl_offset:67041
second_repl_offset:65534
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:85
repl_backlog_histlen:66957
127.0.0.1:6379> 

相關推薦

WindowsRedis主從配置出現Writing to master:Unknow error

nec redis主從 comm 當我 nds slave log 系統 shake 異常:Sending command to master in replication handshake: -Writing to master: Unknown error; 解決

Dockerredis主從配置

1、拉取redis映象[[email protected] ~]$ docker pull daocloud.io/library/redis:latest2、啟動3個redis容器服務,分別使用到6379、6380、6381埠docker run --name r

KubernetesRedis主從配置架構

公司 doc style serve 打開 /etc/ -s spa 大堆 文章看了一大堆,但都是直接從各種地方直接拉master,slave鏡像,沒有交代這些鏡像如何構建出來的 好把,我這篇就講講這些master,slave鏡像如何做成. 先得找到一個標準的redis鏡像

Docker基本操作 安裝redisredis 主從配置

今天李經理讓我瞭解一下docker 以前從來沒有接觸過docker 百度了一下。貌似是挺出名的,挺方便的一個東西。 剛開始對docker沒有什麼概念。連這個是什麼東西都不知道。網上說的是容器。對於什麼都不懂的人來說。這個講的還是有些寬泛了。不能形成一個理解。 於是到網易雲課堂學習了一下docker。但是網

docker redis 主從配置

簡介 拉取映象並啟動兩個容器,redis-01作為主,redis-02 作為從,下面簡單記錄下配置過程 # docker pull redis # docker run -d -p 6379:6379 --name redis-01 redis # docker run -d -

redisDocker主從複製(讀寫分離)、哨兵(主從切換)

       公司專案涉及到redis,最近不太忙於是準備仔細學習下,起初是直接在Windows下搭建,現在試試Docker下搭建redis然後試下哨兵配置,廢話不多說,直接搭建步驟: 1.Docker安裝redis 指令1)docker search redis 查詢

windowsredis主從複製配置

Invalid argument during startup: unknown conf file parameter :  slaveof 主要操作步驟網上很詳細,我大體說一下:把redis資料夾複製兩份作為從伺服器配置 更改從redis的配置檔案:redis.win

linux安裝redis+redis主從配置+redis基本命令

linux安裝redis redis安裝步驟如下: linux命令下載: wget –p /java/redis “chainUrl”;指定下載目錄 1、下載redis安裝包。下載地址為https://redis.io/download 下載下來的檔案為redis-3.2

Springredis配置

gin hostname 文件中 mapper work math 查找 () private 這個項目用到redis,所以學了一下怎樣在Spring框架下配置redis。 1、首先是在web.xml中添加Spring的配置文件。 <web-app version=

windowsredis主從復制設置

red 下載 erp verbose ogl redis 文件中 nbsp -s 下載解壓三份windows系統下的redis 一個是主服務,兩個從服務。 修改從服務的配置文件: 將這兩個文件中的端口,port 更改為與主redis(6379)不相同既可 6380、63

redis主從配置

獲取 slave jedis eof spa col tin on() 127.0.0.1 機器ip:192.168.233.8主redis:./src/redis-server ./redis.conf從redis:./src/redis-server ./redis.c

redis主從配置及手動切換遇到的問題

redis解析我做redis主從遇到的問題:redis只要下載好壓縮包後解壓縮然後make就可以直接使用了,啟動服務是:/usr/local/src/redis/src/redis-server然後進入交互界面是:/usr/lcoal/src/redis/src/reids-cli假如沒有更改port那麽默認

redis主從配置及切換

啟動 文件 con nbsp 數據同步 描述 fun sof don 環境描述:主redis:192.168.10.1 6379從redis:192.168.10.2 6380 一、主從配置 1、將主從redis配置文件redis.conf中的aemonize no 改為

Linux環境Redis安裝配置步驟[轉]

http redis-cli ont == LV 成功 fcm space 執行 在LInux下安裝Redis的步驟如下: 1、首先下載一個Redis安裝包,官網下載地址為:https://redis.io/ 2、在Linux下解壓redis: tar -zxvf re

redis 主從配置,自動切換

redis keepalived聲明: 此文中所用配置方式和腳本邏輯並非原創,腳本和配置都經過本人測試和優化。 基礎信息 軟件版本:CentOS7.2.1511 Keepalived v1.3.4 Redis3.2.4 IP信息: master: 192.168.56.11 slave: 192

Redis 主從配置密碼以及哨兵

切換 啟動命令 block 而且 提升 認證 保護 release 訪問 Redis 主從介紹 主Redis寫入數據時,從Redis會通過Redis Sync機制,同步數據,確保數據一致。並且Redis有哨兵(Sentinel)機制,Redis主掛掉會自動幫我們提升從為主。

Redis 主從配置(Windows版)

src 自動 art 一份 tail image 進行 ins one 原文:Redis 主從配置(Windows版)安裝從庫 1、復制一份 Redis 文件,當做從庫。 2、修改從庫文件中 redis.windows.conf 的端口號。 3、安裝服務,需要

Redis主從配置主從切換

CA idf lis mon 分享圖片 說明 redis-cli dir nts   環境及部署圖   本次配置在同一臺主機配置文件及端口號不一樣   6379配置文件/etc/redis/6379.conf bind 0.0.0.0 protected-mode y

linuxmysql主從配置

ora 設置 說明 mysql- host 刷新 ips user end 一、主服務器相關配置   1、創建同步賬戶並指定服務器地址 [root@localhost ~]mysql -uroot -pmysql>use mysqlmysql>grant r

yum安裝Redis主從配置

主從 http 技術分享 check sys 負責 查看 分享圖片 .com Redis簡介:Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫。它通常被稱為數據結構服務器,因為值(value)可以是 字符串(String), 哈希(Map