使用redis-cli无法查询Docker Compose部署的Redis中的记录
问题排查与解决方案
1. 修复.env文件格式错误
你的.env文件中键值对使用冒号:分隔,不符合.env文件的规范(正确格式为=),导致Docker Compose未正确加载密码,容器内的Redis实际使用默认占位符REDIS_PASSWORD作为密码,而API使用的是redis_password,两者密码不一致,因此cli无法查到API写入的数据。
修改.env文件内容为:
REDIS_PASSWORD=redis_password
重启Redis容器使配置生效:
docker-compose down && docker-compose up -d
2. 确保连接到正确的Redis实例
若本地同时运行了另一个Redis服务,会占用6379端口,导致redis-cli连接的是本地Redis而非容器内的实例。可以直接进入容器内部执行命令:
docker exec -it my-redis redis-cli
执行认证并查询数据:
auth redis_password SCAN 0
也可以在本地cli中明确指定连接地址和端口,避免混淆:
redis-cli -h 127.0.0.1 -p 6379 -a redis_password
3. 检查数据库编号
Redis默认使用db0,但API可能配置了其他数据库(如db1-db15)。进入容器的redis-cli后,先查看所有数据库的key数量:
INFO keyspace
若看到某个数据库(如db1)存在key,切换到对应数据库再查询:
SELECT 1 SCAN 0
4. 数据存储位置说明
你的Docker Compose配置中挂载了./redis-data:/data,Redis的持久化文件(默认是dump.rdb)会保存在当前目录下的redis-data文件夹中。如果Redis开启了持久化(默认自动RDB快照),你可以在该目录下找到对应的持久化文件。
内容的提问来源于stack exchange,提问作者Mark Robson
相关产品推荐
相关产品推荐

