5 分钟跑起 Redis(Docker 版)

针对 Windows 开发者,只要你有 Docker Desktop,就能很方便的玩 Redis 。

本次导航:

  • 一条命令拉起来一个 Redis
  • 连上 Redis 并敲命令
  • 怎么给 Redis 配个自定义配置文件
  • 数据怎么存下来(不会一关容器就丢)
  • 怎么停、怎么删、怎么清空重来

发车前温馨提醒:

如果你对 Docker 还不太熟悉,强烈建议先看如下几篇文章:

👉 容器化技术之Docker-从入地到上天

👉 Windows 下 Docker 安装与使用全攻略

👉 Docker 真香定律:Windows 开发者如何用容器偷懒高效工作

👉 Docker 进阶指南-Windows版:从镜像定制到容器编排,手把手带你玩转 Docker 实战

👉 Docker 网络完全指南

它会帮你搞懂镜像、容器、卷挂载、端口映射这些概念,再回来看这篇就毫无压力了。

一、为什么用 Docker?

以前想在 Windows 上跑 Redis,要么装 WSL 自己编译,要么找第三方 exe(版本老不说,还容易缺依赖)。

有了 Docker Desktop,所有环境问题一句话解决:镜像拉下来就能跑,Linux 内核在容器里模拟好了。

总之,用 Docker 省时又省力!

二、一条命令跑起 Redis

打开你的终端(Windows 上用 PowerShell 或 CMD 都行),执行:

bash 复制代码
docker run -d --name redis-demo -p 6379:6379 redis:latest

解释一下这几个参数:

  • -d:后台运行,不霸占终端
  • --name redis-demo:给容器起个名字,方便后面操作
  • -p 6379:6379:把宿主机的 6379 端口映射到容器的 6379 端口(Redis 默认端口)
  • redis:latest:使用官方最新版镜像(目前是 8.6.2)

跑完之后,用 docker ps 看一眼,应该能看到一个叫 redis-demo 的容器在运行。

当然了,既然用了 Docker Desktop,我们还可以直接在 Desktop 查看镜像和容器,如下图所示:

三、连接 Redis 并敲命令

用容器自带的 redis-cli(推荐,不用装额外东西)

bash 复制代码
docker exec -it redis-demo redis-cli

执行后你会看到 127.0.0.1:6379> 提示符,这就是 Redis 命令行界面了。

敲几个命令试试:

powershell 复制代码
127.0.0.1:6379> SET name "redis-beginner"
OK
127.0.0.1:6379> GET name
"redis-beginner"
127.0.0.1:6379> INCR counter
(integer) 1
127.0.0.1:6379> INCR counter
(integer) 2
127.0.0.1:6379> GET counter
"2"
127.0.0.1:6379>

要退出 redis-cli,按 Ctrl+C 或输入 exit。

四、基本操作速览(先混个脸熟)

Redis 最常用的几类命令,咱们先玩一遍:

bash 复制代码
# string 类型
SET user:1001 "zhangsan"
GET user:1001

# 给数字加一
SET views 0
INCR views
INCRBY views 10

# 列表操作
LPUSH queue "task1"
LPUSH queue "task2"
RPOP queue   # 弹出 "task1"

# 哈希操作
HSET user:1002 name "lisi" age 25
HGET user:1002 name
HGETALL user:1002

# 查看所有 key(生产环境慎用,这里只是试试)
KEYS *

每一条命令你都能看到即时返回结果。后面我会有专门的文章讲每种数据结构。

五、给 Redis 加点配置:挂载自定义 redis.conf

默认的 Redis 是"裸奔"的:没有密码、内存不限制、持久化也没开。如果你想改配置,可以自己写一个 redis.conf。

5.1 创建一个最小配置文件

在你电脑上新建一个目录,比如 D:\redis-conf,里面创建一个 redis.conf 文件,内容如下:

conf 复制代码
# 允许所有 IP 访问
bind 0.0.0.0

# 设置密码
requirepass mypassword

# 最大内存 256MB
maxmemory 256mb

# 内存满了之后驱逐策略
maxmemory-policy allkeys-lru

# 开启 AOF 持久化(每秒钟 fsync 一次)
appendonly yes
appendfsync everysec

5.2 用配置文件启动容器

先停掉之前的容器:

bash 复制代码
docker stop redis-demo
docker rm redis-demo

然后重新启动,并挂载配置文件:

bash 复制代码
docker run -d --name redis-demo -p 6379:6379 -v D:/redis-conf/redis.conf:/usr/local/etc/redis/redis.conf redis:latest redis-server /usr/local/etc/redis/redis.conf

注意:

  • -v 前面是 Windows 上的路径,后面是容器内的路径(不要写反)
  • 最后的 redis-server /usr/local/etc/redis/redis.conf 告诉容器启动时用这个配置文件

启动后,如果你在 redis.conf 里设置了 requirepass,再连 redis-cli 时就需要认证:

bash 复制代码
docker exec -it redis-demo redis-cli -a mypassword

或者连上之后再输入 AUTH mypassword。

六、持久化数据:别让 Redis 失忆

上面已经通过 appendonly yes 打开了 AOF,所有写操作会记录到 appendonly.aof 文件里。

但这个文件存在容器内部,一旦删掉容器,数据也就没了。所以还需要把数据目录挂载出来:

bash 复制代码
# 先创建数据目录,比如 D:\redis-data
docker run -d --name redis-demo -p 6379:6379 \
  -v D:/redis-conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v D:/redis-data:/data \
  redis:latest redis-server /usr/local/etc/redis/redis.conf

容器里的 /data 目录会映射到 Windows 的 D:\redis-data,里面会生成 appendonly.aof 或 dump.rdb。以后删了容器重新跑,数据还在。

七、常用管理命令

  • 查看容器日志 :docker logs redis-demo
  • 停止容器 :docker stop redis-demo
  • 启动已存在的容器 :docker start redis-demo
  • 删除容器(彻底清空) :docker rm redis-demo
  • 进入容器内部 bash :docker exec -it redis-demo /bin/bash

OK,本次导航结束,下次继续。

相关推荐
全栈弄潮儿1 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
仍然.1 小时前
Redis---缓存
数据库·redis·缓存
m0_646429971 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
码事漫谈2 小时前
五道题,测测你有没有真的入门 AI
后端
蜗牛互联网2 小时前
Python + JSON Schema 实现工单结构化输出与本地复核
java·人工智能·后端
大侠归来4 小时前
Spring Boot 2.1 → 3.5 迁移推演:从实战出发的完整路线图
java·spring boot·后端
吴声子夜歌4 小时前
Docker入门与实战——实战案例(Web服务与应用)
docker·容器
仍然.4 小时前
Redis---分布式锁
数据库·redis·分布式
海马4 小时前
Spring Boot 开发知识整理
java·spring boot·后端
谢亮_vipxieliang5 小时前
Spring Boot 3.x 从零开始——环境搭建与第一个 REST 项目
java·spring boot·后端