5 分钟跑起 Redis(Docker 版)
针对 Windows 开发者,只要你有 Docker Desktop,就能很方便的玩 Redis 。
本次导航:
- 一条命令拉起来一个 Redis
- 连上 Redis 并敲命令
- 怎么给 Redis 配个自定义配置文件
- 数据怎么存下来(不会一关容器就丢)
- 怎么停、怎么删、怎么清空重来
发车前温馨提醒:
如果你对 Docker 还不太熟悉,强烈建议先看如下几篇文章:
👉 Docker 真香定律:Windows 开发者如何用容器偷懒高效工作
👉 Docker 进阶指南-Windows版:从镜像定制到容器编排,手把手带你玩转 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,本次导航结束,下次继续。