• Docker如何安装Redis
  • 发布于 2个月前
  • 286 热度
    0 评论
前言

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容器的部署,感谢阅读。
用户评论