摘要:要想看到那个网页,不用折腾太复杂。把 Redis 和 Redis Commander 拉起来就行,我一般推荐用 Docker Compose,这样一来别人也能照着你的步骤复现,省事儿又稳。把下面这个文件存成 docker-compose.yml 放到一个文件夹
要想看到那个网页,不用折腾太复杂。把 Redis 和 Redis Commander 拉起来就行,我一般推荐用 Docker Compose,这样一来别人也能照着你的步骤复现,省事儿又稳。把下面这个文件存成 docker-compose.yml 放到一个文件夹里,按需改密码和端口:
version: "3.8"
redis:
image: redis:6-alpine
restart: unless-stopped
ports:
redis-commander:
image: rediscommander/redis-commander:latest
- REDIS_HOSTS=local:redis:6379
depends_on:
- redis
文件保存好后,切到这个目录,敲一句命令就行:docker-compose up -d。容器通常几秒到几十秒就起来了。要确认状态可以用 docker ps 或者 docker-compose ps,想看实时日志就 docker-compose logs -f redis-commander,出现报错能从日志里看到端倪。上面示例把容器里默认的 8081 端口映射到了宿主机的 8000,所以浏览器访问 127.0.0.1:8000 就能打开界面。
如果你的 Redis 开了密码,连接字符串要写全。REDIS_HOSTS 支持几种写法,常见的是像这样:prod:redis://:密码@1.2.3.4:6379。还可以一次列多个实例,用逗号隔开。地址写对了,网页上会把实例列出来,点进去就能看到键空间、键的类型、TTL 什么的,点一个键还能看详细内容并直接编辑。
Redis Commander 本身是个开源的 Node.js 项目,源码放在 GitHub(https://github.com/joeferner/redis-commander)。想改界面或功能,拉源码改配置是可行的。日常用它主要是为了直观查看数据结构、快速定位问题或者做小规模数据迁移。有些脚本不好弄的可视化操作,在网页上几下点就搞定了。
实际操作里常遇到几类问题,讲清楚好少踩坑。第一类是端口被占了,宿主上的 8000 已经有人用,访问会是空白页或连接被拒绝。这种情况改一下端口映射就完事儿。第二类是环境变量格式写错,REDIS_HOSTS 写得不对会导致界面不显示任何实例,仔细核对字符串格式能解决。第三类跟网络有关:容器间通信靠服务名或桥接网络,示例里用 redis 作为主机名,是因为 docker-compose 会建立默认网络并把服务名注册上。如果你要连外网或另一台机器上的 Redis,要把 host 换成 IP,并且确保防火墙放行对应端口。
页面上到底能干啥?常用操作说清楚方便你上手:顶部有搜索框,支持模糊查找键名。点某个键,会显示类型(比如 string、hash、list、set、zset),不同类型会呈现不同的编辑器界面,可以直接改值或者增加成员。页面里还有个类似小终端的地方,能直接执行命令,执行结果会回显。想把一批键导出来做迁移或备份,可以用导出功能,把选中的键导成 JSON。要清空数据也能做,但有确认提示,不会一键把你所有东西干掉。
把它接到生产环境里,要多考虑安全。默认镜像没有做额外认证,不能直接暴露到公网。常见做法是把它放内网,或者在前面加一层反向代理做认证(Basic Auth、OAuth 或公司内部 SSO 都行)。另一个建议是把配置信息放成环境变量或挂载配置文件,这样容器重启或扩容时配置能保持一致。日志建议别只留在容器里,挂到文件或发送到日志集中平台,便于审计和排查问题。
如果不想自己搭 Redis,也可以只跑 redis-commander 并把 REDIS_HOSTS 指向某个现成的 Redis 地址。只要字符串写对了,网页很快就能连上,这样就能体验界面、查数据。总之,打开浏览器,输入地址,点几下就能看到数据,这是做排查和观察数据的起点。
举个实战的小提示:如果容器之间连不上,先 docker exec 到容器里 ping 服务名试试,或者在宿主上用 telnet IP 端口 看连通性;如果日志里提示认证失败,检查下 REDIS_HOSTS 的密码部分有没有漏写冒号或多了空格。比如要连远端加了密码的 Redis,可以把 REDIS_HOSTS 设置成 'prod:redis://:你的密码@1.2.3.4:6379'。
来源:穿梭的光
