国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - docker redis5.0 cluster集群搭建的實現

docker redis5.0 cluster集群搭建的實現

2021-04-20 21:25oldk 服務器知識

這篇文章主要介紹了docker redis5.0 cluster集群搭建的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

系統環境:ubuntu16.04LTS

本文是使用 6 個 docker 容器搭建單機集群測試,實際環境如果是多臺,可對應修改容器數量、端口號和集群 ip 地址,每臺機器都按下面步驟同樣操作即可。

拉取redis官方鏡像

?
1
docker pull redis:5.0

創建配置文件和數據目錄

創建目錄

?
1
2
mkdir ~/redis_cluster
cd ~/redis_cluster

新建一個模板文件sudo vim redis_cluster.tmpl,填入如下內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# redis端口
port ${PORT}
 
# 關閉保護模式
protected-mode no
 
# 開啟集群
cluster-enabled yes
 
# 集群節點配置
cluster-config-file nodes.conf
 
# 超時
cluster-node-timeout 5000
 
# 集群節點IP host模式為宿主機IP
cluster-announce-ip 10.10.100.197
 
# 集群節點端口 7000 - 7005
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
 
# 開啟 appendonly 備份模式
appendonly yes
 
# 每秒鐘備份
appendfsync everysec
 
# 對aof文件進行壓縮時,是否執行同步操作
no-appendfsync-on-rewrite no
 
# 當目前aof文件大小超過上一次重寫時的aof文件大小的100%時會再次進行重寫
auto-aof-rewrite-percentage 100
 
# 重寫前AOF文件的大小最小值 默認 64mb
auto-aof-rewrite-min-size 5120mb
 
# 關閉快照備份
save ""

批量創建配置文件和數據目錄,終端運行以下命令:

?
1
2
3
4
5
for port in `seq 7000 7005`; do \
 mkdir -p ./${port}/conf \
 && PORT=${port} envsubst < ./redis_cluster.tmpl > ./${port}/conf/redis.conf \
 && mkdir -p ./${port}/data; \
done

批量啟動 redis 容器

容器的 ip 地址采用 host 模式:

?
1
2
3
4
5
6
7
for port in `seq 7000 7005`; do \
 docker run -d -it --memory=1G \
 -v ~/redis_cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
 -v ~/redis_cluster/${port}/data:/data \
 --restart always --name redis-${port} --net host \
 --sysctl net.core.somaxconn=1024 redis:5.0 redis-server /usr/local/etc/redis/redis.conf; \
done

這里的--memeory=1G是限制單個 docker 容器占用內存大小為 1G,超過會被進程殺死。運行時可能會出現...Memory limited without swap...這個警告,可以忽略。如不需要限制內存,可以去掉--memeory參數。

創建集群

隨便進入其中一個容器:

?
1
docker exec -it redis-7000 bash

進入后執行如下命令創建集群:

?
1
redis-cli --cluster create 10.10.100.197:7000 10.10.100.197:7001 10.10.100.197:7002 10.10.100.197:7003 10.10.100.197:7004 10.10.100.197:7005 --cluster-replicas 1

安裝redis-cli命令(如已有可跳過此步):

?
1
sudo apt install redis-tools

輸入yes后,集群創建完畢,exit退出 docker,接著登錄其中一個節點,驗證集群可用性:

?
1
redis-cli -c -p 7000

輸入cluster nodes查看集群狀態

?
1
2
3
4
5
6
7
127.0.0.1:7000> cluster nodes
06851aa134d50096d82a434eced9194233b5204e 10.10.100.197:7003@17003 slave 8b33f273386c9504ef8bd10b005e24825b3b9596 0 1567671901000 4 connected
a42297b65f7101fc9e4941ef8a0e65080d1b6338 10.10.100.197:7005@17005 slave 0aa20378d14e3ef0859815196cbafa67e1001d0e 0 1567671901581 6 connected
e7b6a35b1e92f94c225c507ea19f7f0318f0d1c3 10.10.100.197:7002@17002 master - 0 1567671902582 3 connected 10923-16383
0aa20378d14e3ef0859815196cbafa67e1001d0e 10.10.100.197:7000@17000 myself,master - 0 1567671901000 1 connected 0-5460
8b33f273386c9504ef8bd10b005e24825b3b9596 10.10.100.197:7001@17001 master - 0 1567671902383 2 connected 5461-10922
fe355eed99100197f43d1216d1de82643dd496a5 10.10.100.197:7004@17004 slave e7b6a35b1e92f94c225c507ea19f7f0318f0d1c3 0 1567671901380 5 connected

設置集群密碼

設置密碼為什么不在上面的步驟,利用模板文件批量創建配置文件的時候就寫進去?

無論是在 redis5.x 版本,還是以前的 redis 版本利用 ruby 創建集群的方式,在redis-cli --cluster create創建集群的環節沒有密碼參數配置,所以我們需要創建完集群再設置密碼。

我們用config set方式分別為每一個節點設置相同的密碼(不需要重啟 redis,且重啟后依然有效),在此之前先給所有 redis 配置文件加w權限,不然密碼無法保存到文件。

注意當前路徑依然是在~/redis_cluster/:

?
1
2
3
for port in `seq 7000 7005`; do \
 chmod a+w ./${port}/conf/redis.conf; \
done

下面用一臺做示例:

登錄一個節點:

?
1
redis-cli -c -p 7000

設置密碼:

?
1
2
3
4
5
6
7
8
127.0.0.1:7000> config set masterauth 123456
OK
127.0.0.1:7000> config set requirepass 123456
OK
127.0.0.1:7000> auth 123456
OK
127.0.0.1:7000> config rewrite
OK

后面幾臺執行同樣的操作即可。

集群寫入數據簡單測試

隨便登錄一個集群節點:

?
1
redis-cli -c -p 7003 -a 123456

寫入數據:

?
1
2
3
4
5
6
7
127.0.0.1:7003> set va 1
-> Redirected to slot [7800] located at 10.10.100.197:7001
OK
10.10.100.197:7001> get va
"1"
10.10.100.197:7001> del va
(integer) 1

可以看到,集群中任意節點寫入數據,在其他任意節點都能讀到。

至此,redis 集群搭建完成。

其他注意事項

  • 外網訪問 redis,可能需要防火墻開放相應端口;
  • 如果需要刪除容器,可批量操作:
?
1
2
3
4
for port in `seq 7000 7005`; do \
 docker stop redis-${port};
 docker rm redis-${port};
done

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000021710597

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 夜夜摸夜夜操 | 成人黄色片网站 | 久久精品免费一区二区三区 | 亚洲视频在线免费观看 | 亚洲精品在线看 | 久久精品国产99国产精品 | 五月婷婷香蕉 | 国产精品999 | 日本欧美在线观看 | 中文字幕在线三区 | 国产欧美精品一区二区三区四区 | 国产精品久久久久久久久费观看 | 日干夜操 | 欧美在线观看一区二区 | 波多野结衣一区二区三区免费视频 | 久久久高清 | 天天摸天天摸 | 国产精品久久久久久久久久小说 | 免费a级毛片大学生免费观看 | 成人av在线网 | 91久久 | 精品无码久久久久久久动漫 | 国产精品欧美久久久久久 | 国产精品成人一区二区三区 | 国产精品免费久久久久久久久 | 美日韩av| 精品无码久久久久久国产 | 亚洲国产精品99久久久久久久久 | 欧美精品日韩 | 九九九久久久 | 亚洲免费在线播放 | 欧美午夜一区二区 | 99久久婷婷国产综合精品草原 | 国产91精品久久久久 | 99精品欧美一区二区蜜桃免费 | 成人av观看 | 国产资源在线看 | 亚洲一区二区三区四区的 | 精品一区二区三区免费毛片 | 91久久国产综合久久91精品网站 | 中文在线一区 |