1. 程式人生 > >Docker安裝單機版redis5和叢集版redis5

Docker安裝單機版redis5和叢集版redis5

轉載請表明出處 https://blog.csdn.net/Amor_Leo/article/details/85147086 謝謝

Docker安裝單機版redis5和叢集版redis5

單機Redis

搜尋redis

docker search redis

拉取redis映象

docker pull redis:latest

準備redis.conf

cd /usr/local
mkdir redis
cd redis/
mkdir data conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O conf/redis.conf 

修改配置檔案

vim conf/redis.conf

修改內容

bind 0.0.0.0  #所有IP都可以訪問
protected-mode no # 關閉保護模式
appendonly yes

建立並啟動容器

docker run  -p 6379:6379 -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true  --name redis -d redis redis-server /usr/local/etc/redis/redis.conf 

命令詳解

-p 6379:6379:埠對映
-v /usr/local/redis/conf/redis.conf: /usr/local/etc/redis/redis.conf :把宿主機配置好的redis.conf放到容器中
-v /usr/local/redis/data:/data:把redis持久化的資料在宿主機內顯示,做資料備份
redis-server  /usr/local/etc/redis/redis.conf     讓redis按照redis.conf的配置啟動
–appendonly yes   redis啟動後資料持久化

連線

docker exec -it redis redis-cli

叢集Redis

建立資料夾

cd /usr/local
mkdir  redis-cluster
cd redis-cluster
mkdir 6380 6381 6382 6383 6384 6385
cd 6380 
mkdir  data conf 
cd ../6381
mkdir  data conf 
cd ../6382
mkdir  data conf 
cd ../6383
mkdir  data conf 
cd ../6384
mkdir  data conf 
cd ../6385
mkdir  data conf
cd /usr/local/redis-cluster

準備redis.conf

wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6380/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6381/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6382/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6383/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6384/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O  6385/conf/redis.conf

依次修改redis.conf

vim 6380/redis.conf
bind 0.0.0.0 #預設繫結本地地址,導致其它地方不可遠端訪問 改成區域網中的IP地址或者0.0.0.0所有ip都可以訪問
protected-mode no #非保護模式
port 6380 #埠
pidfile /var/run/redis_6380.pid #需要修改為 reids_{port}.pid 的形式
appendonly yes #開啟AOF日誌 指定持久化方式
cluster-enabled yes #開啟叢集
cluster-config-file nodes-6380.conf #叢集的配置檔案 nodes_{port}.conf的形式
cluster-node-timeout 5000 #超時時間

建立並啟動容器

注意docker網路: --net=host

docker run -p 6380:6380  --net=host  -v /usr/local/redis-cluster/6380/data:/data -v /usr/local/redis-cluster/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis1 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6381:6381  --net=host  -v /usr/local/redis-cluster/6381/data:/data -v /usr/local/redis-cluster/6381/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis2 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6382:6382  --net=host  -v /usr/local/redis-cluster/6382/data:/data -v /usr/local/redis-cluster/6382/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis3 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6383:6383  --net=host  -v /usr/local/redis-cluster/6383/data:/data -v /usr/local/redis-cluster/6383/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis4 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6384:6384  --net=host -v /usr/local/redis-cluster/6384/data:/data -v /usr/local/redis-cluster/6384/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis5 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6385:6385  --net=host -v /usr/local/redis-cluster/6385/data:/data -v /usr/local/redis-cluster/6385/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis6 -d redis redis-server /usr/local/etc/redis/redis.conf

檢視是否啟動成功

docker ps

檢視是否啟動

安裝redis原始碼

建立一個目錄

cd /usr/local/
mkdir redis

進入建立的目錄

cd redis 

下載新版本Redis

wget http://download.redis.io/releases/redis-5.0.3.tar.gz

解壓

tar -zxvf redis-5.0.3.tar.gz 

進入解壓之後的目錄

cd redis-5.0.3

編譯安裝 (使用prefix 指定一個安裝位置)

make && make install  PREFIX=/usr/local/redistest

建立叢集

cd src
./redis-cli --cluster create 192.168.0.131:6380 192.168.0.131:6381 192.168.0.131:6382 192.168.0.131:6383 192.168.0.131:6384 192.168.0.131:6385 --cluster-replicas 1

叢集成功

檢視redis狀態

 ps -ef | grep redis

在這裡插入圖片描述

連線

  • 使用./redis-cli
    ./redis-cli -c -h 192.168.0.131 -p 6380
    

在這裡插入圖片描述

  • 使用docker連線
     docker exec -it redis1 redis-cli -p 6380
    

在這裡插入圖片描述

關閉開啟redis叢集

  • 關閉
    docker stop redis1 redis2 redis3 redis4 redis5 redis6
    
  • 開啟
    docker start redis1 redis2 redis3 redis4 redis5 redis6
    

在這裡插入圖片描述