前言
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