日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

docker privileged作用_Docker环境下秒建Redis集群,连SpringBoot也整上了!

發(fā)布時(shí)間:2024/1/23 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker privileged作用_Docker环境下秒建Redis集群,连SpringBoot也整上了! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為了提高Redis的存儲(chǔ)容量和響應(yīng)速度,有時(shí)候我們需要搭建Redis集群。本文主要講述Redis集群環(huán)境的搭建步驟以及如何在SpringBoot中整合使用Redis集群。

SpringBoot實(shí)戰(zhàn)電商項(xiàng)目mall(30k+star)地址:https://github.com/macrozheng/mall

Redis集群搭建

這里我們使用最方便的搭建方式,使用Docker Compose來(lái)搭建,對(duì)Docker Compose不了解的朋友可以參考下《使用Docker Compose部署SpringBoot應(yīng)用》。我們將搭建一個(gè)6節(jié)點(diǎn)的Redis集群,包括3個(gè)主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)。
  • 在搭建Redis集群之前,我們需要修改下Redis的配置文件redis.conf,該文件的下載地址:https://github.com/antirez/redis/blob/5.0/redis.conf
  • 需要修改的屬性如下,主要是修改了一些集群配置和運(yùn)行端口,端口號(hào)需要按需修改為6391~6396:
# 開啟集群功能 cluster-enabled yes # 設(shè)置運(yùn)行端口 port 6391 # 設(shè)置節(jié)點(diǎn)超時(shí)時(shí)間,單位毫秒 cluster-node-timeout 15000 # 集群內(nèi)部配置文件 cluster-config-file "nodes-6391.conf"
  • 然后我們需要編寫docker-compose.yml文件用于編排6個(gè)Redis容器,具體屬性的作用可以參考下面的注釋;
version: "3" services:redis-master1:image: redis:5.0 # 基礎(chǔ)鏡像container_name: redis-master1 # 容器名稱working_dir: /config # 切換工作目錄environment: # 環(huán)境變量- PORT=6391 # 會(huì)使用config/nodes-${PORT}.conf這個(gè)配置文件ports: # 映射端口,對(duì)外提供服務(wù)- 6391:6391 # redis的服務(wù)端口- 16391:16391 # redis集群監(jiān)控端口stdin_open: true # 標(biāo)準(zhǔn)輸入打開tty: true # 后臺(tái)運(yùn)行不退出network_mode: host # 使用host模式privileged: true # 擁有容器內(nèi)命令執(zhí)行的權(quán)限volumes:- /mydata/redis-cluster/config:/config #配置文件目錄映射到宿主機(jī)entrypoint: # 設(shè)置服務(wù)默認(rèn)的啟動(dòng)程序- /bin/bash- redis.shredis-master2:image: redis:5.0working_dir: /configcontainer_name: redis-master2environment:- PORT=6392ports:- 6392:6392- 16392:16392stdin_open: truenetwork_mode: hosttty: trueprivileged: truevolumes:- /mydata/redis-cluster/config:/configentrypoint:- /bin/bash- redis.shredis-master3:image: redis:5.0container_name: redis-master3working_dir: /configenvironment:- PORT=6393ports:- 6393:6393- 16393:16393stdin_open: truenetwork_mode: hosttty: trueprivileged: truevolumes:- /mydata/redis-cluster/config:/configentrypoint:- /bin/bash- redis.shredis-slave1:image: redis:5.0container_name: redis-slave1working_dir: /configenvironment:- PORT=6394ports:- 6394:6394- 16394:16394stdin_open: truenetwork_mode: hosttty: trueprivileged: truevolumes:- /mydata/redis-cluster/config:/configentrypoint:- /bin/bash- redis.shredis-slave2:image: redis:5.0working_dir: /configcontainer_name: redis-slave2environment:- PORT=6395ports:- 6395:6395- 16395:16395stdin_open: truenetwork_mode: hosttty: trueprivileged: truevolumes:- /mydata/redis-cluster/config:/configentrypoint:- /bin/bash- redis.shredis-slave3:image: redis:5.0container_name: redis-slave3working_dir: /configenvironment:- PORT=6396ports:- 6396:6396- 16396:16396stdin_open: truenetwork_mode: hosttty: trueprivileged: truevolumes:- /mydata/redis-cluster/config:/configentrypoint:- /bin/bash- redis.sh
  • 從docker-compose.yml文件中我們可以看到,我們的Redis容器分別運(yùn)行在6391~6396這6個(gè)端口之上, 將容器中的/config配置目錄映射到了宿主機(jī)的/mydata/redis-cluster/config目錄,同時(shí)還以redis.sh腳本作為該容器的啟動(dòng)腳本;
  • redis.sh腳本的作用是根據(jù)environment環(huán)境變量中的PORT屬性,以指定配置文件來(lái)啟動(dòng)Redis容器;
redis-server /config/nodes-${PORT}.conf
  • 接下來(lái)我們需要把Redis的配置文件和redis.sh上傳到Linux服務(wù)器的/mydata/redis-cluster/config目錄下;

  • 接下來(lái)上傳我們的docker-compose.yml文件到Linux服務(wù)器,并使用docker-compose命令來(lái)啟動(dòng)所有容器;
docker-compose up -d
  • 啟動(dòng)過(guò)程中會(huì)輸出如下信息;

  • 此時(shí)進(jìn)入其中一個(gè)Redis容器之中,初始化Redis集群;
# 進(jìn)入Redis容器 docker exec -it redis-master1 /bin/bash # 初始化Redis集群命令 redis-cli --cluster create 192.168.6.139:6391 192.168.6.139:6392 192.168.6.139:6393 192.168.6.139:6394 192.168.6.139:6395 192.168.6.139:6396 --cluster-replicas 1
  • 集群創(chuàng)建過(guò)程中會(huì)讓你確認(rèn)配置,輸入yes確認(rèn)即可;

  • Redis集群創(chuàng)建成功后會(huì)輸出如下信息;

  • 創(chuàng)建成功后我們可以使用redis-cli命令連接到其中一個(gè)Redis服務(wù);
# 單機(jī)模式啟動(dòng) redis-cli -h 127.0.0.1 -p 6391 # 集群模式啟動(dòng) redis-cli -c -h 127.0.0.1 -p 6391
  • 之后通過(guò)cluster nodes命令可以查看節(jié)點(diǎn)信息,發(fā)現(xiàn)符合原來(lái)3主3從的預(yù)期。

SpringBoot中使用Redis集群

我們?cè)凇禨pring Data Redis 最佳實(shí)踐!》中講到了在SpringBoot中如何使用Redis,用的是單節(jié)點(diǎn)的Redis服務(wù),這次我們講下如何使用Redis集群服務(wù)。
  • 我們?cè)谠瓉?lái)代碼的基礎(chǔ)上進(jìn)行改造,修改application.yml配置文件,添加Redis集群配置;
spring:redis: # host: 192.168.6.139 # Redis服務(wù)器地址 # database: 0 # Redis數(shù)據(jù)庫(kù)索引(默認(rèn)為0) # port: 6379 # Redis服務(wù)器連接端口password: # Redis服務(wù)器連接密碼(默認(rèn)為空)timeout: 3000ms # 連接超時(shí)時(shí)間lettuce:pool:max-active: 8 # 連接池最大連接數(shù)max-idle: 8 # 連接池最大空閑連接數(shù)min-idle: 0 # 連接池最小空閑連接數(shù)max-wait: -1ms # 連接池最大阻塞等待時(shí)間,負(fù)值表示沒(méi)有限制cluster:nodes:- 192.168.6.139:6391- 192.168.6.139:6392- 192.168.6.139:6393- 192.168.6.139:6394- 192.168.6.139:6395- 192.168.6.139:6396
  • 此時(shí)我們?cè)俅握{(diào)用獲取品牌詳情的接口,就會(huì)把品牌信息緩存到Redis集群中去了;
  • 由于Redis容器redis-master1和redis-slave2互為主從,所以里面都緩存了相同的品牌詳情信息。

配置文件地址

https://github.com/macrozheng/mall-learning/tree/master/document/redis-cluster

項(xiàng)目源碼地址

https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-redis

本文 GitHub https://github.com/macrozheng/mall-learning已經(jīng)收錄,歡迎大家Star!

總結(jié)

以上是生活随笔為你收集整理的docker privileged作用_Docker环境下秒建Redis集群,连SpringBoot也整上了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。