前言

Redis是一个开源的内存型数据库,也被称为数据结构服务器nosql。它是一种高性能、非关系型数据库,通常用于缓存和快速存储键值对数据,也可以支持多种复杂的数据结构。

Redis 在许多应用场景中都有应用,比如缓存、会话存储、消息队列、计数器、排行榜、实时分析和发布/订阅系统等。

centos 安装redis的过程

查看可用的 Redis 版本

可以在redis镜像地址: https://hub.docker.com/_/redis?tab=tags,可以这里查找到所有可用的redis版本。

在这里插入图片描述

同时通过docker搜索指令,可以输出redis可用版本,供之后docker拉取镜像选择版本。

    docker search redis

在这里插入图片描述

拉取 Redis 镜像

这里拉取的是最新的redis镜像,用latest标识。也可以根据上面输出的redis版本进行指定版本的redis镜像拉取。

    docker pull redis:latest

在这里插入图片描述

查看本地所有镜像

当redis镜像下载完成后,我们可以通过images命令查看本地所有的docker镜像。

    docker images

在这里插入图片描述

运行容器

通过run命令运行docker容器,这里可以使用上面下载好的redis镜像,也可以指定本地未下载的redis镜像版本,此时docker会先执行pull命令,下载完redis镜像后才执行run命令。

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

参数说明:

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

在这里插入图片描述

查看运行情况

    docker ps

在这里插入图片描述

进入容器内部,还可以通过 redis-cli 连接测试使用 redis 服务。

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

在这里插入图片描述

到此docker安装redis已经完成啦。

将配置文件和数据文件映射到外部

创建存放redis数据的文件夹

    mkdir -p ~/i/apps/redis/{conf,data}

在这里插入图片描述

下载配置文件

下载redis配置文件,这里是redis的默认配置,后续可以针对配置进行特定修改

    cd ~/i/apps/redis/conf
    wget https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf

修改配置文件

bind 127.0.0.1只能通过本地连接redis,这里需要远程访问redis,将其注释。

requirepass 表示登陆redis的密码,不填写则表示没有密码,填写密码可以增加redis访问的安全性。

protected-mode 设置为 yes 表示启用 Redis 的保护模式,可以限制了远程客户端的访问,以减少潜在的安全风险。前面我们将bind 127.0.0.1注释,所以这里需要改为no,表示不限制远程连接。

    # 注释符号 #
    # 1. 注释 bind 127.0.0.1
    # 2. protected-mode yes 修改成 protected-mode no
    # 3. 添加 requirepass yourpassword (注:不添加则可以无密码访问)

    # 注:步骤1和步骤的2目的是为了远程连接redis,如果只需本地访问就无需修改。

    #  bind 127.0.0.1
    protected-mode no

创建并启动容器

docker run运行一个redis的容器,这里的几个参数意义表示如下:

-d 表示容器在后台运行,这样可以使容器在后台持续运行而不占用终端,终端关闭程序仍可以正常运行。

-p 6379:6379 将主机(宿主机)端口 6379 映射到容器内部的端口 6379,可以通过主机上的端口访问运行在容器内部的 Redis 服务器。

-v ~/i/apps/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf: 将主机上的 Redis 配置文件 ~/i/apps/redis/conf/redis.conf 映射到容器内部的 /usr/local/etc/redis/redis.conf,可以将自定义的 Redis 配置文件加载到容器中,再重启容器实现redis配置的更新。该参数后data映射是将主机上的数据目录 ~/i/apps/redis/data 映射到容器内部的 /data 目录。这样可以将 Redis 数据持久化到主机文件系统,即数据在容器销毁后仍可以保留。

redis-server /usr/local/etc/redis/redis.conf: 这是在容器运行后,在容器内执行的命令,即 Redis服务器在容器内使用指定的配置文件 /usr/local/etc/redis/redis.conf 启动。

    docker run -d  -p 6379:6379 -v ~/i/apps/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v ~/i/apps/redis/data:/data --name myredis redis redis-server /usr/local/etc/redis/redis.conf

脚本启动

为了方便启动redis,这里我写了一个启动脚本,该脚本仅映射了数据文件的redis容器使用,会先删除容器再创建容器。

如有其他需求可以自行修改脚本指令。

cd ~/i/apps/redis/
cat <<EOF > start.sh

#!/bin/bash
REDIS_DIR=`pwd`
docker stop myredis
docker rm myredis
docker run -d  --restart always  --name myredis  -p 6379:6379 -v \${REDIS_DIR}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v \${REDIS_DIR}/data:/data  redis redis-server /usr/local/etc/redis/redis.conf  -appendonly yes
EOF

测试启动脚本

启动脚本,或赋予执行权限后,通过./start.sh启动。

    sh start.sh

在这里插入图片描述

测试redis功能

进入redis容器内部执行redis-cli,此时就可以执行rdis命令了。

     docker exec -it myredis /bin/bash
     redis-cli
     set testkey 2
     get testkey

在这里插入图片描述

到此已经完成整个redis容器的部署,感谢阅读。