Docker 安装 Redis(一文讲透)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
前言
在现代软件开发中,Docker 安装 Redis 成为了一项基础且实用的技术操作。Redis 是一种高性能的键值存储系统,广泛应用于缓存、消息队列和实时数据分析等领域。而 Docker 则通过容器化技术简化了软件部署和环境管理。将两者结合,既能快速搭建 Redis 环境,又能确保配置的一致性,避免“在我的机器上能运行”这类常见问题。本文将从零开始,逐步讲解如何通过 Docker 安装和配置 Redis,同时穿插实际案例和代码示例,帮助读者轻松掌握这一技能。
环境准备:安装 Docker
在开始之前,需要确保本地或服务器已安装 Docker。Docker 支持 Windows、macOS 和 Linux 系统,安装步骤如下:
Windows/macOS 用户
- 下载 Docker Desktop:访问 Docker 官网 ,下载对应系统的安装包。
- 启动 Docker Desktop:安装完成后,启动 Docker 应用,确保桌面右下角(或菜单栏)的 Docker 图标显示为绿色,表示服务已运行。
Linux 用户
以 Ubuntu 为例,执行以下命令:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install docker-ce
sudo docker --version
验证 Docker 安装
无论何种系统,均可通过以下命令检查 Docker 是否正常运行:
docker run hello-world
如果输出包含“Hello from Docker!”的欢迎信息,说明环境已准备就绪。
步骤一:拉取 Redis 官方镜像
Docker Hub 是官方镜像仓库,提供了 Redis 的官方镜像。使用 docker pull
命令下载镜像:
docker pull redis
执行后,Docker 会自动从远程仓库拉取最新版本的 Redis 镜像。
步骤二:运行 Redis 容器
获取镜像后,通过 docker run
命令启动容器。基础命令格式如下:
docker run \
--name redis-container \ # 自定义容器名称
-d \ # 后台运行
-p 6379:6379 \ # 映射宿主机6379端口到容器6379端口
redis # 使用的镜像名称
参数解释
--name
:为容器指定名称,便于后续管理。-d
:表示容器在后台运行,避免阻塞终端。-p
:端口映射规则,格式为宿主机端口:容器端口
。
步骤三:验证 Redis 服务
容器启动后,可以通过以下命令检查运行状态:
docker ps
若看到 redis-container
的状态为 Up
,说明服务已启动。
连接 Redis 客户端
使用 redis-cli
连接本机的 Redis 服务:
redis-cli
输入 ping
命令,若返回 PONG
,则表示连接成功。
高级配置:持久化与数据保留
默认情况下,Docker 容器的数据是临时的,容器停止后会丢失。为了持久化数据,需配置 Volume 或 绑定挂载。
方法一:使用 Volume
docker run \
--name redis-persistent \
-d \
-p 6379:6379 \
-v redis-data:/data \ # 创建并挂载名为redis-data的Volume
redis redis-server --appendonly yes
-v redis-data:/data
:将容器的/data
目录挂载到 Docker 管理的 Volumeredis-data
,数据会持久化存储。--appendonly yes
:启用 AOF(Append Only File)持久化策略,确保数据不丢失。
方法二:绑定挂载本地目录
docker run \
--name redis-local \
-d \
-p 6379:6379 \
-v /my/local/data:/data \ # 将本地路径挂载到容器
redis redis-server --dir /data
此方法将容器的数据目录直接映射到本地文件系统,方便直接操作文件。
自定义配置:修改 Redis 配置文件
Redis 的默认配置可能无法满足需求,可通过挂载自定义配置文件实现精细化控制。
步骤
- 创建配置文件:在本地创建
redis.conf
,添加以下内容:
port 6380 # 修改端口
maxmemory 256mb # 设置内存限制
appendonly yes # 开启AOF持久化
- 启动容器时挂载配置:
docker run \
--name redis-config \
-d \
-p 6380:6380 \
-v /path/to/redis.conf:/usr/local/etc/redis/redis.conf \
redis redis-server /usr/local/etc/redis/redis.conf
实际案例:通过 Python 连接 Redis
编写一个简单的 Python 脚本,测试 Redis 的连接与数据操作:
import redis
client = redis.Redis(host='localhost', port=6379, db=0)
client.set('name', 'Alice')
print(client.get('name').decode('utf-8')) # 输出:Alice
client.hset('user:1', mapping={'age': 30, 'email': 'alice@example.com'})
print(client.hgetall('user:1'))
常见问题与解决方案
问题1:端口冲突
若启动容器时提示 port is already allocated
,说明端口被占用。可通过以下方式解决:
- 修改
-p
参数的宿主机端口,例如-p 6380:6379
。
问题2:数据未持久化
检查 Volume 挂载是否生效,或确认配置文件中是否正确设置了 appendonly yes
。
问题3:容器无法连接
运行以下命令查看容器日志:
docker logs redis-container
根据日志排查配置错误或网络问题。
结论
通过 Docker 安装 Redis,开发者可以快速构建一个轻量、隔离的运行环境,避免依赖冲突并简化部署流程。无论是开发测试还是生产环境,Docker 的灵活性和可移植性都使其成为理想的选择。本文通过分步骤讲解和代码示例,帮助读者掌握了从基础安装到高级配置的完整流程。建议读者通过实际操作加深理解,并尝试将 Redis 集成到自己的项目中,体验容器化技术带来的便利性。
关键词布局说明
- 标题直接包含“Docker 安装 Redis”
- 正文多次自然提及“Docker”和“Redis”,强调两者结合的价值
- 在步骤说明、案例和解决方案中融入关键词,确保内容与主题强相关
通过本文的指导,读者不仅能完成 Redis 的安装,更能理解容器化技术的核心思想,为后续学习更复杂的 Docker 应用打下坚实基础。