通过docker和docker-compose安装redis两种方式详解

 更新时间:2024年12月11日 11:39:27   作者:微技术  
这篇文章主要介绍了通过docker和docker-compose安装redis的两种方式,Docker安装方式包括拉取镜像、查看本地镜像、运行容器和测试连接,Docker Compose安装方式包括目录结构、配置文件、启动和关闭容器、检查启动情况以及查看CPU和内存使用状态,需要的朋友可以参考下

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的 NoSQL 数据库,并提供多种语言的 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

在上图中可以看到我们已经安装了最新版本(latest)的 redis 镜像。

4、运行容器

安装完成后,我们可以使用以下命令来运行 redis 容器:

$ docker run -itd --name redis-test -p 6379:6379 redis

参数说明: 

  • -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5、安装成功

最后我们可以通过 docker ps 命令查看容器的运行信息:

接着我们通过 redis-cli 连接测试使用 redis 服务。

$ docker exec -it redis-test /bin/bash

二、 使用docker-compose安装redis的方法

1.目录结构

docker-compose和redis相关的目录和文件存储结构如下:

myProject                       ----项目名
├── compose      
│    └── docker-compose.yml     ----compose配置文件
└── redis     
   ├── data                     ----redis数据存储目录     
   ├── logs                     ----redis日志文件目录(redis.conf中logfile设置相对路径则不需要)     
   └── redis.conf               ----redis配置文件

2.redis.conf配置文件内容

使用官方的redis.conf配置文件没搞定(可能是redis版本有差异,个别参数不匹配),这里我们直接将主要参数提取出来。

#开启远程可连接
#bind 127.0.0.1
#自定义密码
requirepass 12345678
#指定 Redis 监听端口(默认:6379)
port 6379
#客户端闲置指定时长后关闭连接(单位:秒。0:关闭该功能)
timeout 0
# 900s内如果至少一次写操作则执行bgsave进行RDB持久化操作
save 900 1
# 在300s内,如果至少有10个key进行了修改,则进行持久化操作
save 300 10
#在60s内,如果至少有10000个key进行了修改,则进行持久化操作
save 60 10000
#是否压缩数据存储(默认:yes。Redis采用LZ 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大)
rdbcompression yes
#指定本地数据文件名(默认:dump.rdb)
dbfilename dump.rdb
#指定本地数据文件存放目录
dir /data
#指定日志文件位置(如果是相对路径,redis会将日志存放到指定的dir目录下)
logfile "redis.log"

3.docker-compose.yml配置文件内容

version: "3.8"
services:
  redis:
    # 镜像及版本      
    image: redis:6.2.6
    # 自定义容器名
    container_name: my-redis
    # docker启动时,自动启动该容器
    restart: always
    # 挂载映射,可以让数据或配置持久化
    volumes:
      # <本地配置文件> : <docker中的配置文件> : <ro:docker容器对该文件只读,默认是rw可读可写>
      - ../redis/redis.conf:/etc/redis/redis.conf:ro
      # <本地数据目录> : <docker中的数据目录>
      - ../redis/data:/data
      # <本地日志目录> : <docker中的日志目录>
      # redis不具有自动创建/logs的权限,如果redis.conf中指定的相对位置,则数据目录已经可以映射出日志文件
      #- ../redis/logs:/logs
    # docker执行的启动命令
    command: redis-server /etc/redis/redis.conf
    ports:
     # <本地端口> : <docker容器端口>
     - 6378:6379

4. docker-compose启动和关闭

#  cd compose
#  docker-compose up

// 或以后台方式启动
#  docker-compose up -d

// 关闭docker-compose
#  docker-compose down

5. 检查redis启动情况

直接使用客户端RDM连接redis;也可以先通过命令检查一下:

// 查看容器
# docker ps

// 查看端口
# netstat -ntlp

6.查看redis容器的CPU和内存使用状态

# 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

‍总结

到此这篇关于通过docker和docker-compose安装redis两种方式的文章就介绍到这了,更多相关docker和docker-compose安装redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis的KEYS 命令千万不能乱用

    Redis的KEYS 命令千万不能乱用

    这篇文章主要介绍了Redis的KEYS 命令千万不能乱用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 关于Redis持久化的深入探究

    关于Redis持久化的深入探究

    Redis持久化是将内存中的数据保存到磁盘,以防止数据丢失。Redis提供了两种持久化方式:RDB和AOF,本文将给大家详解介绍Redis持久化,感兴趣的同学可以跟着小编一起来学习
    2023-05-05
  • Redis连接池监控(连接池是否已满)与优化方法

    Redis连接池监控(连接池是否已满)与优化方法

    本文详细讲解了如何在Linux系统中监控Redis连接池的使用情况,以及如何通过连接池参数配置、系统资源使用情况、Redis命令监控、外部监控工具等多种方法进行检测和优化,以确保系统在高并发场景下的性能和稳定性,讨论了连接池的概念、工作原理、参数配置,以及优化策略等内容
    2024-09-09
  • redis击穿 雪崩 穿透超详细解决方案梳理

    redis击穿 雪崩 穿透超详细解决方案梳理

    这篇文章主要为大家介绍了Redis击穿穿透雪崩产生原因及解决思路的解决方案参考,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步
    2022-03-03
  • Redis 定长队列探索及实践

    Redis 定长队列探索及实践

    这篇文章主要介绍了Redis 定长队列探索及实践,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • SpringBoot 集成Redis 过程

    SpringBoot 集成Redis 过程

    redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。本文给大家介绍SpringBoot 集成Redis 过程,感兴趣的朋友一起看看吧
    2021-06-06
  • Redis中一个String类型引发的惨案

    Redis中一个String类型引发的惨案

    着存储的数据量越来越大,Redis的内存的使用量也快速上升,结果遇到了大内存Redis实例因为生成RDB而响应变慢的问题。很显然String类型并不是一种好的选择,那有什么办法可以降低内存消耗吗?带着这个问题一起通过本文学习下吧
    2021-07-07
  • Redis批量查询的四种方式详解

    Redis批量查询的四种方式详解

    在高并发场景下,巧妙地利用缓存批量查询技巧能够显著提高系统性能,熟练掌握细粒度的缓存使用是每位架构师必备的技能,因此,在本文中,我们将深入探讨 Redis 中批量查询的一些技巧,希望能够给你带来一些启发,需要的朋友可以参考下
    2025-10-10
  • Redis设置database不生效的解决方案

    Redis设置database不生效的解决方案

    最近在做redis缓存设置的时候,发现即使已经设置了database, 但是存数据的时候还是用的默认0数据库,所以本文就给大家介绍了Redis设置database不生效的解决方案,需要的朋友可以参考下
    2023-08-08
  • Redis大Key(Bigkey)问题识别与解决全解析

    Redis大Key(Bigkey)问题识别与解决全解析

    在高并发场景下,Redis 以极致的内存操作速度成为缓存与NoSQL领域的首选,但随着业务发展,大Key(Bigkey) 问题逐渐显现,带来内存风险、性能瓶颈、集群失衡等隐患,本文给大家介绍了Redis大Key(Bigkey)问题识别与解决,需要的朋友可以参考下
    2025-08-08

最新评论