AIGC标识 如何连接并查询 Docker 中的 Redis

 

在开发或运维中,我们经常需要快速查看 Redis 中存储的数据。如果 Redis 运行在 Docker 容器里,该怎么连接和查询呢?本文基于实际场景,为你梳理最简明的操作步骤。


1️⃣ 查看容器是否暴露了端口

首先,确认 Redis 容器是否把端口映射到了宿主机。执行:

bash
docker ps | grep redis

观察 PORTS 列:

  • 如果显示 0.0.0.0:6386->6379/tcp,表示宿主机的 6386 端口映射到了容器的 6379。

  • 如果只有 6379/tcp,则没有映射,只能从容器内部或同网络的其他容器访问。

💡 示例

text
a23c34642d40   redis:8-alpine    ...   0.0.0.0:6386->6379/tcp   lucimix-redis-1

→ 宿主机端口是 6386,容器名是 lucimix-redis-1


2️⃣ 连接到 Redis

根据端口映射情况,有两种常用方式。

方式 A:使用 docker exec(最通用,无需端口映射)

直接在容器内执行 redis-cli

bash
docker exec -it <容器名> redis-cli

例如:

bash
docker exec -it lucimix-redis-1 redis-cli

进入交互式命令行,提示符变为 127.0.0.1:6379>

方式 B:从宿主机使用 redis-cli(需映射端口)

若宿主机已安装 redis-cli,可以直接连接映射后的端口:

bash
redis-cli -h 127.0.0.1 -p 6386

如果设置了密码,加上 -a 密码


3️⃣ 查询数据

连接成功后,即可执行 Redis 命令。

通用命令

 
命令作用
KEYS * 查看所有键(生产环境慎用)
SCAN 0 迭代遍历键(安全替代)
DBSIZE 键的数量
EXISTS key 检查键是否存在
TYPE key 查看键的数据类型

按类型查询

 
数据类型常用查询命令
String GET key
Hash HGETALL keyHGET key field
List LRANGE key 0 -1
Set SMEMBERS key
Sorted Set ZRANGE key 0 -1 WITHSCORES

📝 示例:查询短信验证码

bash
get sms:code:8613333333333

返回验证码值,若不存在则显示 (nil)


4️⃣ 常见错误及解决

❌ 错误示例(在 redis-cli 交互内重复输入 redis-cli):

text
127.0.0.1:6379> redis-cli get sms:code:xxx
(error) ERR unknown command 'redis-cli'

✅ 正确做法:在交互界面中直接输入命令本身,无需再写 redis-cli

若想一次性执行单条命令并退出,可不用进入交互:

bash
docker exec -it lucimix-redis-1 redis-cli get sms:code:xxx

5️⃣ 通过 SSH 远程操作(可选)

若需从跳板机或本地远程连接到服务器,可组合 SSH + Docker 命令:

bash
ssh -p 37294 user@host \
  'cd /srv/apps/lucimix && docker compose exec -T redis redis-cli get sms:code:xxx'
  • -T 确保非交互模式执行,避免终端分配问题。


📌 总结

 
步骤关键点
查看映射 docker psPORTS
连接方式 优先 docker exec -it <容器> redis-cli
查询数据 TYPE 确认类型,再使用对应 GET/HGETALL
规避错误 交互中不再输入 redis-cli,直接写命令

掌握这些基础操作,你就能高效地从 Docker 容器中获取 Redis 数据,无论是调试还是日常巡检都游刃有余。

posted @ 2026-07-21 11:02  峡谷风  阅读(2)  评论(0)    收藏  举报