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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

docker $PWD路径_Docker 技术系列之安装Redis单机版和集群版

發(fā)布時(shí)間:2024/7/5 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker $PWD路径_Docker 技术系列之安装Redis单机版和集群版 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎關(guān)注劉哥講技術(shù)。上一節(jié)我們講到通過docker安裝了多臺的mysql,很簡單,那么我們這一節(jié),利用 Docker 在一臺機(jī)器上部署多個 Redis 實(shí)例。

那么redis是什么呢?Redis 是一個開源的使用 ANSI C 語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value 的 NoSQL 數(shù)據(jù)庫,并提供多種語言的 API。

現(xiàn)在分布式緩存首選的應(yīng)用,面試也基本離不開它,一起來學(xué)習(xí)學(xué)習(xí)它吧。

一、單機(jī)版本Redis

  • 1、查看可用的 Redis 版本

訪問 Redis 鏡像庫地址:

https://hub.docker.com/_/redis

此外,我們還可以用命令來查看可用版本。

docker search redis
  • 2、取最新版的 Redis 鏡像

這里我們獲取官方的默認(rèn)的鏡像:

docker pull redis
  • 3、查看本地鏡像

使用以下命令來查看是否已安裝了 redis。

docker images
  • 4、運(yùn)行容器

安裝完成后,我們可以使用以下命令來運(yùn)行 redis 容器

(1)創(chuàng)建掛載目錄

創(chuàng)建一個文件夾用來存放redis的配置文件、數(shù)據(jù)等(也就是所謂的掛載目錄,作用就是將此目錄中的文件或文件夾覆蓋掉容器內(nèi)部的文件或文件夾)

mkdir -p $HOME/docker/redis

(2)進(jìn)入到該目錄下

cd $HOME/docker/redis

(3)啟動redis容器

docker run -d -p 6379:6379 -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name myredis redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes --requirepass "123456"

參數(shù)詳解:

  • -d:表示后臺運(yùn)行
  • -p:表示端口映射,冒號左面的是我們的宿主機(jī)的端口,也就是我們虛擬機(jī)的端口
  • --name:給容器取的名字
  • -v:表示掛載路徑。
  • redis-server --appendonly yes :在容器執(zhí)行redis-server啟動命令,并打開redis持久化配置
  • --requirepass 設(shè)置redis密碼

(4)檢測是否安裝成功

最后我們可以通過 docker ps 命令查看容器的運(yùn)行信息

docker ps

(5)查看容器的ip

如果沒有指定容器內(nèi)的ip,每次啟動有可能都是會變化的。如果沒有指定,那么我們可以通過以下命令來查看ip,然后登陸:

docker inspect myredis | grep IPAddress

我電腦分配的ip為:

"SecondaryIPAddresses": null,"IPAddress": "172.17.0.2","IPAddress": "172.17.0.2",

(6)測試使用redis 服務(wù)

可以通過以下連接命令進(jìn)行連接。

不帶密碼版本,命令窗口再輸入docker exec -ti myredis redis-cli -h 172.17.0.2 -p 6379 -a 123456帶密碼版本,不用再輸入密碼docker exec -ti myredis redis-cli -h 172.17.0.2 -p 6379 -a 123456

說明:

  • myredis 你設(shè)置的容器名字。
  • 默認(rèn)是通過6379端口
  • 默認(rèn)ip為:127.0.0.1
  • 一般需要指定獲取的ip地址。

(7)測試過程

我這里先通過密碼框登陸

docker exec -ti myredis redis-cli -h 172.17.0.2 -p 6379

首先獲取一下值,看看是否可以使用,發(fā)現(xiàn)提示未認(rèn)證:(error) NOAUTH Authentication required.

get myname

先輸入錯誤的密碼,進(jìn)行驗(yàn)證,發(fā)現(xiàn)提示密碼錯誤:(error) NOAUTH Authentication required.

auth 12345

我們再輸入正確的密碼,提示ok即可

auth 123456

再次獲取值,發(fā)現(xiàn)redis存儲為空:(nil)

get myname

對name值進(jìn)行設(shè)置

set myname liuge

獲取name值

get myname

我們可以通過redis desktop manager 進(jìn)行連接進(jìn)行查看。Redis桌面管理器(又名RDM) 是一個用于Windows,Linux和MacOS的快速開源Redis數(shù)據(jù)庫管理應(yīng)用程序。當(dāng)然你也可以通過以下方式連接測試:RedisView、WebRedisManager、RedisDesktopManager、RedisPlus、AnotherRedisDesktopManager、FastoRedis。

小結(jié):

如果你是簡單實(shí)用,那么上面就能滿足日常測試,學(xué)習(xí)redis命令等應(yīng)用了。

但是,有時(shí)候還需要另外一臺作為比較正式或者其他用,還是需要再搭建一臺。

在windows那時(shí)候,我是通過修改配置文件,然后通過啟動腳本,重新啟動一份,比較折騰,有了docker,這個比較好解決。

如果有這個需求,可以接下來的教程。

二、多臺Redis共存的情況

(1)創(chuàng)建掛在目錄

data存放數(shù)據(jù),conf存放配置文件。

mkdir -p $HOME/docker/redis2

(2)進(jìn)入該目錄

cd $HOME/docker/redis2

(3)啟動redis容器

docker run -d -p 6388:6379 -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name myredis2 redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes --requirepass "redispassword"

(4)檢測是否安裝成功

最后我們可以通過 docker ps 命令查看容器的運(yùn)行信息

docker ps

(5)查看容器的ip

docker inspect myredis2 | grep IPAddress

目前電腦的redis的ip為

"SecondaryIPAddresses": null,"IPAddress": "172.17.0.4","IPAddress": "172.17.0.4",

(6)測試使用redis 服務(wù)

可以通過以下連接命令進(jìn)行連接,myredis你設(shè)置的容器名字。

docker exec -it myredis2 redis-cli

輸入密碼

docker exec -it myredis2 redis-cli

三、搭建Redis集群

對于大多數(shù)中小公司來說,通常單機(jī)的Redis已經(jīng)足夠,最多根據(jù)不同業(yè)務(wù)分散到多臺Redis。

為什么需要集群呢?

  • Redis單線程特性,多請求順序執(zhí)行,單個耗時(shí)的操作會阻塞后續(xù)的操作
  • 單機(jī)內(nèi)存有限
  • 某些特殊業(yè)務(wù),帶寬壓力較大
  • 單點(diǎn)問題,缺乏高可用性
  • 不能動態(tài)擴(kuò)容
  • Redis集群的目標(biāo)就是為了實(shí)現(xiàn)高可用性,避免性能瓶頸,可動態(tài)擴(kuò)容,易于做監(jiān)控告警。

那么接下來,我們看下如何進(jìn)行安裝。

我這里是通過一個比較快捷的方案,是一個開源的redis集群鏡像來搭建。

集群是6個Redis實(shí)例,其中運(yùn)行3個主節(jié)點(diǎn)和3個從節(jié)點(diǎn),每個主節(jié)點(diǎn)一個從節(jié)點(diǎn)。它們在端口7000到7005上運(yùn)行。接下來我們看看如何搭建:

鏡像地址

源碼 https://github.com/Grokzen/docker-redis-cluster倉庫地址 https://hub.docker.com/r/grokzen/redis-cluster/

拉取鏡像

docker pull grokzen/redis-cluster

通過這個鏡像可以快速輕松地啟動和運(yùn)行Redis集群,用于演示/演示/開發(fā)。注意生產(chǎn)環(huán)境沒經(jīng)過嚴(yán)格驗(yàn)證,還不推薦直接使用。

docker run -e "IP=0.0.0.0" -e STANDALONE=true -e SENTINEL=true -d grokzen/redis-cluster:latest

參數(shù)說明

  • -e "IP=0.0.0.0" 將內(nèi)部IP環(huán)境變量添加到docker run命令中。使用此容器在Mac計(jì)算機(jī)上運(yùn)行Redis集群,則需要將容器配置為使用另一個IP地址進(jìn)行集群發(fā)現(xiàn),因?yàn)樗鼰o法使用硬編碼到容器中的默認(rèn)發(fā)現(xiàn)IP。
  • -e SENTINEL=true 默認(rèn)情況下,未啟用Sentinel實(shí)例。表示啟用哨兵實(shí)例。如果-e "STANDALONE=true"通過該標(biāo)志,則默認(rèn)情況下在端口7006和7007上運(yùn)行2個獨(dú)立實(shí)例。但是,您可以將此變量設(shè)置為所需的多個獨(dú)立節(jié)點(diǎn),例如-e "STANDALONE=1"。請注意,獨(dú)立端口在最后一個從屬設(shè)備之后立即啟動。如果-e "SENTINEL=true"傳遞了該標(biāo)志,則在與群集的主實(shí)例匹配的端口5000到5002上運(yùn)行3個Sentinel節(jié)點(diǎn)。

查看容器的ip

docker inspect distracted_wing | grep IPAddress

測試

docker exec -ti distracted_wing redis-cli -p 7000

(error) MOVED 原因和解決方案

錯誤:

(error) MOVED 6918 127.0.0.1:7001

這種情況一般是因?yàn)閞edis-cli連接redis服務(wù)時(shí)候,沒有指定是集群模式連接。啟動時(shí)使用-c參數(shù)來啟動集群模式,命令如下:

docker exec -ti distracted_wing redis-cli -c -p 7000

查看集群信息

cluster info

查看節(jié)點(diǎn)信息

cluster nodes

后面有時(shí)間再分享,如何通過redis源碼自己構(gòu)建一個docker redis 集群鏡像。

Souvc:Docker 技術(shù)系列之安裝多版本Mysql5.6和Mysql5.7?zhuanlan.zhihu.comSouvc:Docker 技術(shù)系列之安裝Docker Desktop for Mac?zhuanlan.zhihu.com

總結(jié)

以上是生活随笔為你收集整理的docker $PWD路径_Docker 技术系列之安装Redis单机版和集群版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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