通過docker和docker-compose安裝redis兩種方式詳解

Redis 是一個開源的使用 ANSI C 語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value 的 NoSQL 數(shù)據(jù)庫,并提供多種語言的 API。這里介紹通過docker和docker-compose兩種安裝redis的方式。
一、docker安裝方式
1、查看可用的 Redis 版本
訪問 Redis 鏡像庫地址:https://hub.docker.com/_/redis?tab=tags。
可以通過 Sort by 查看其他版本的 Redis,默認是最新版本 redis:latest。

也可以在下拉列表中找到其他版本:

此外,我們還可以用 docker search redis 命令來查看可用版本:
$ docker search redis NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis Redis is an open source ... 2321 [OK] sameersbn/redis 32 [OK] torusware/speedus-redis Always updated official ... 29 [OK] bitnami/redis Bitnami Redis Docker Image 22 [OK] anapsix/redis 11MB Redis server image ... 6 [OK] webhippie/redis Docker images for redis 4 [OK] clue/redis-benchmark A minimal docker image t... 3 [OK] williamyeh/redis Redis image for Docker 3 [OK] unblibraries/redis Leverages phusion/baseim... 2 [OK] greytip/redis redis 3.0.3 1 [OK] servivum/redis Redis Docker Image 1 [OK] ...
2、取最新版的 Redis 鏡像
這里我們拉取官方的最新版本的鏡像:
$ docker pull redis:latest

3、查看本地鏡像
使用以下命令來查看是否已安裝了 redis:
$ docker images

在上圖中可以看到我們已經(jīng)安裝了最新版本(latest)的 redis 鏡像。
4、運行容器
安裝完成后,我們可以使用以下命令來運行 redis 容器:
$ docker run -itd --name redis-test -p 6379:6379 redis
參數(shù)說明:
-p 6379:6379:映射容器服務(wù)的 6379 端口到宿主機的 6379 端口。外部可以直接通過宿主機ip:6379 訪問到 Redis 的服務(wù)。

5、安裝成功
最后我們可以通過 docker ps 命令查看容器的運行信息:

接著我們通過 redis-cli 連接測試使用 redis 服務(wù)。
$ docker exec -it redis-test /bin/bash
二、 使用docker-compose安裝redis的方法
1.目錄結(jié)構(gòu)
docker-compose和redis相關(guān)的目錄和文件存儲結(jié)構(gòu)如下:
myProject ----項目名 ├── compose │ └── docker-compose.yml ----compose配置文件 └── redis ├── data ----redis數(shù)據(jù)存儲目錄 ├── logs ----redis日志文件目錄(redis.conf中l(wèi)ogfile設(shè)置相對路徑則不需要) └── redis.conf ----redis配置文件
2.redis.conf配置文件內(nèi)容
使用官方的redis.conf配置文件沒搞定(可能是redis版本有差異,個別參數(shù)不匹配),這里我們直接將主要參數(shù)提取出來。
#開啟遠程可連接 #bind 127.0.0.1 #自定義密碼 requirepass 12345678 #指定 Redis 監(jiān)聽端口(默認:6379) port 6379 #客戶端閑置指定時長后關(guān)閉連接(單位:秒。0:關(guān)閉該功能) timeout 0 # 900s內(nèi)如果至少一次寫操作則執(zhí)行bgsave進行RDB持久化操作 save 900 1 # 在300s內(nèi),如果至少有10個key進行了修改,則進行持久化操作 save 300 10 #在60s內(nèi),如果至少有10000個key進行了修改,則進行持久化操作 save 60 10000 #是否壓縮數(shù)據(jù)存儲(默認:yes。Redis采用LZ 壓縮,如果為了節(jié)省 CPU 時間,可以關(guān)閉該選項,但會導(dǎo)致數(shù)據(jù)庫文件變的巨大) rdbcompression yes #指定本地數(shù)據(jù)文件名(默認:dump.rdb) dbfilename dump.rdb #指定本地數(shù)據(jù)文件存放目錄 dir /data #指定日志文件位置(如果是相對路徑,redis會將日志存放到指定的dir目錄下) logfile "redis.log"
3.docker-compose.yml配置文件內(nèi)容
version: "3.8"
services:
redis:
# 鏡像及版本
image: redis:6.2.6
# 自定義容器名
container_name: my-redis
# docker啟動時,自動啟動該容器
restart: always
# 掛載映射,可以讓數(shù)據(jù)或配置持久化
volumes:
# <本地配置文件> : <docker中的配置文件> : <ro:docker容器對該文件只讀,默認是rw可讀可寫>
- ../redis/redis.conf:/etc/redis/redis.conf:ro
# <本地數(shù)據(jù)目錄> : <docker中的數(shù)據(jù)目錄>
- ../redis/data:/data
# <本地日志目錄> : <docker中的日志目錄>
# redis不具有自動創(chuàng)建/logs的權(quán)限,如果redis.conf中指定的相對位置,則數(shù)據(jù)目錄已經(jīng)可以映射出日志文件
#- ../redis/logs:/logs
# docker執(zhí)行的啟動命令
command: redis-server /etc/redis/redis.conf
ports:
# <本地端口> : <docker容器端口>
- 6378:63794. docker-compose啟動和關(guān)閉
# cd compose # docker-compose up // 或以后臺方式啟動 # docker-compose up -d // 關(guān)閉docker-compose # docker-compose down
5. 檢查redis啟動情況
直接使用客戶端RDM連接redis;也可以先通過命令檢查一下:
// 查看容器 # docker ps // 查看端口 # netstat -ntlp
6.查看redis容器的CPU和內(nèi)存使用狀態(tài)
# docker stats my-redis CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 0631151ef5d8 my-redis 0.05% 1.766MiB / 3.7GiB 0.05% 13kB / 55.1kB 0B / 8.19kB 6
總結(jié)
到此這篇關(guān)于通過docker和docker-compose安裝redis兩種方式的文章就介紹到這了,更多相關(guān)docker和docker-compose安裝redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
為什么RedisCluster設(shè)計成16384個槽
本文主要介紹了為什么RedisCluster設(shè)計成16384個槽,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
詳解使用Redis SETNX 命令實現(xiàn)分布式鎖
本篇文章主要介紹了詳解使用Redis SETNX 命令實現(xiàn)分布式鎖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
如何利用Redis?List實現(xiàn)Java數(shù)據(jù)庫分頁快速查詢
這篇文章主要給大家介紹了關(guān)于如何利用Redis?List實現(xiàn)Java數(shù)據(jù)庫分頁快速查詢的相關(guān)資料,Redis是一個高效的內(nèi)存數(shù)據(jù)庫,它支持包括String、List、Set、SortedSet和Hash等數(shù)據(jù)類型的存儲,需要的朋友可以參考下2024-02-02
Redis數(shù)據(jù)類型string和Hash詳解
大家都知道Redis中有五大數(shù)據(jù)類型分別是String、List、Set、Hash和Zset,本文給大家分享Redis數(shù)據(jù)類型string和Hash的相關(guān)操作,感興趣的朋友跟隨小編一起看看吧2022-03-03

