Docker 安装 Redis(图文教程)

更新时间 2024-05-22 11:52:25

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 50w+ 字,讲解图 2200+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 1700+ 小伙伴加入学习 ,欢迎点击围观

大家好,我是小哈~

星球第二个项目 后续的业务功能开发中,会频繁使用到分布式缓存 Redis,那么,本小节中,小哈就将演示如何通过 Docker 快速的将本地的 Redis 环境搭建好。

什么是 Redis ?

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统。它可以用作数据库、缓存和消息中间件。Redis 提供了多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)及有序集合(Sorted Sets)等。此外,Redis 还支持持久化操作,可以将数据保存在磁盘上,并在重启时加载到内存中。

创建持久化文件夹

创建 Redis 持久化文件夹创建 Redis 持久化文件夹

在拉取 Redis 镜像之前,我们先创建对应文件夹,用于挂载 Redis 数据与配置文件。这里我新建在了 E:\docker\redis 文件夹下,并创建了:

  • /config : 放置 Redis 配置文件;
  • /data : 放置 Redis 持久化数据;

下载镜像

接着,执行如下命令,下载 Redis 7.2.3 版本的镜像:

docker pull redis:7.2.3

下载 Redis 镜像下载 Redis 镜像

镜像下载完成后,可通过 docker images 查看本地已下载的镜像,确认一下镜像是否真的下载成功了:

Redis 配置文件

然后,开始准备 Redis 对应的配置文件。可访问官网地址:https://redis.io/docs/management/config/ ,如下图所示,点击查看 7.2 版本的配置文件内容:

E:\docker\redis\conf 目录下,创建名为 redis.conf 的配置文件,并将跳转网页中展示的所有配置项,复制到 redis.conf 文件中。

修改 Redis 配置文件

复制完成后,还需要修改 2 项配置项。由于配置文件内容较多,小伙伴们可通过编辑器的全局搜索找到对应位置,首先是将 bind 配置项注释掉:

为什么要注释掉?

默认情况下,Redis 只监听来自本地的连接。通过注释掉 bind 127.0.0.1 -::1,Redis 将会监听所有网络接口上的连接,这意味着外部网络上的设备也可以连接到 Redis 服务器。这会使 Redis 变得可从外部访问,而不仅仅是从本地。

接着是连接密码,全局搜索关键词 requirepass , 将该配置项注释放开,并填写连接密码,小哈这里填写的是 qwe123!@# :

启动 Redis 容器

配置文件弄好后,执行以下命令,启动一个 7.2.3 版本的 Redis 容器:

docker run -p 6379:6379 --name redis2 -v E:\docker\redis\conf\redis.conf:/etc/redis/redis.conf  -v E:\docker\redis\data:/data -d redis:7.2.3 redis-server /etc/redis/redis.conf --appendonly yes

解释一下各项参数的含义:

  1. -p 6379:6379:将宿主机的 6379 端口映射到容器的 6379 端口。Redis 默认在 6379 端口上运行,这使得宿主机上的应用可以通过 localhost:6379 访问容器中的 Redis 实例。
  2. --name redis2:给容器指定一个名称 redis2。这样可以通过这个名称来管理容器(例如启动、停止、查看日志等)。
  3. -v E:\docker\redis\conf\redis.conf:/etc/redis/redis.conf
    • 将宿主机的 E:\docker\redis\conf\redis.conf 文件挂载到容器的 /etc/redis/redis.conf 路径。这使得 Redis 容器使用宿主机上的配置文件。
  4. -v E:\docker\redis\data:/data
    • 将宿主机的 E:\docker\redis\data 目录挂载到容器的 /data 目录。这样 Redis 的数据持久化文件(如 AOF 文件和 RDB 文件)会保存在宿主机上,即使容器被删除,数据也不会丢失。
  5. -d:以守护进程(后台)模式运行容器。这意味着容器启动后会在后台运行,不会阻塞当前终端。
  6. redis:7.2.3:使用标签为 7.2.3 的 Redis 镜像。Docker 会从 Docker Hub 上拉取这个 Redis 镜像(如果本地没有的话)。
  7. redis-server /etc/redis/redis.conf --appendonly yes
    • 这是容器启动后执行的命令。它启动 Redis 服务器,并指定使用 /etc/redis/redis.conf 作为配置文件,同时启用 AOF(Append-Only File)持久化模式。
    • redis-server /etc/redis/redis.conf:指定使用 /etc/redis/redis.conf 配置文件启动 Redis 服务器。
    • --appendonly yes:启用 AOF 持久化模式,这将确保 Redis 服务器将每个写操作追加到持久化文件中,以提高数据的可靠性。

容器启动完毕后,执行如下命令,来查看正在运行中的 Docker 容器,确认一下 Redis 容器是否成功跑起来了:

docker ps

安装 Redis 图形客户端

Redis 容器运行起来后,我们还需要一个图像化操作客户端,以便捷的操作 Redis 。这里推荐 Another Redis Desktop Manager , 安装包下载地址:https://github.com/qishibo/AnotherRedisDesktopManager/releases ,如下图所示,点击下载对应系统的安装包:

安装成功后,运行客户端,点击右上角新建连接按钮:

填写本地 Redis 的连接地址、端口、密码,以及连接名称,点击确定

连接新建完成后,点击左侧栏上方的控制台图标,可以打开控制台,在最下方填写相关命令,如 set key value , 提示 OK , 说明操作成功了,即可在左侧列表中看到新添加的 key , 添加对应的 key 即可查看 value 值 :