前言
作为后端开发、运维与架构师日常高频使用的缓存与中间件,Redis支撑着绝大多数业务的缓存读写、热点数据存储、分布式锁等核心场景。但在实际运维与问题排查过程中,很多人都会陷入繁琐低效的困境:线上Redis出现内存暴涨、接口超时、主从延迟、OOM溢出、缓存异常等问题时,只能依靠零散的命令行指令排查,反复执行 INFO、slowlog、MEMORY、bigkeys等指令拼凑数据,不仅操作繁琐、耗时耗力,还难以直观洞察数据全貌、定位隐性问题。
尤其是隐藏的大Key、热点Key、内存碎片过高、过期策略异常、慢查询堆积等隐蔽故障,单纯依赖命令行排查门槛高、效率低,极易出现排查不全面、问题定位滞后的情况,甚至导致线上业务抖动、服务卡顿等风险,让不少开发者倍感头疼。传统排查方式依赖经验、数据可视化缺失、问题溯源困难,已然无法适配高效的线上运维排查需求。
针对Redis排查的各类痛点,Redis-Insight凭借轻量化、可视化、全维度的分析能力,成为高效排查Redis问题的利器。它摒弃了繁琐的命令行操作,以可视化界面直观呈现Redis内存占用、Key分布、数据结构、慢查询日志、集群状态、主从同步情况等核心信息,一键识别异常Key、内存瓶颈与性能隐患,简化排查流程、降低运维门槛,让复杂的Redis数据分析与故障排查变得清晰、高效、直观。本文将带大家全面解锁Redis-Insight的核心能力,手把手掌握可视化排查技巧,轻松搞定Redis各类疑难问题。
1.什么是Redis‑Insight?
Redis‑Insight是Redis官方开源、可自托管的Redis可视化分析工具,定位为Redis图形化运维排查工具,主打把晦涩的Redis命令行指标转化为直观的Web可视化界面,实现零复杂命令完成Redis监控、数据分析与故障排查。
✨核心特点
- 界面与体验
Web图形化操作界面,不用记忆大量Redis命令;提供内存分析、慢查询、键浏览器、集群监控等多个功能视图;支持筛选检索Key、查看不同数据结构详情,普通运维人员不用反复敲命令,浏览器上即可完成绝大部分Redis排查操作。
- 数据自主可控
支持本地Docker部署,连接自建Redis、主从、哨兵、Redis‑Cluster集群;所有分析运算在自己服务端完成,不会把业务数据上传第三方,不用担心业务敏感缓存数据外泄。
- 问题排查能力
一键识别大Key、热Key,直观查看内存占用分布、内存碎片率;完整展示慢查询日志,统计命令调用情况;可以查看客户端连接、主从复制状态、持久化RDB/AOF状态,快速定位OOM、卡顿、延迟等线上问题。
- 扩展能力
内置Redis命令行终端,可直接在页面执行Redis指令;支持导入RDB快照做离线分析;可以配置告警阈值,配合Webhook实现异常推送;兼容Redis多种部署架构,本地开发、测试环境、线上集群都可以接入使用。
🎯适用场景
| 使用场景 | 具体说明 |
|---|---|
| 线上 Redis 故障排查 | 处理内存飙升、服务卡顿、接口超时、OOM 宕机,定位大 Key、热 Key、内存碎片隐患 |
| 开发调试缓存数据 | 可视化查看业务缓存 Key 内容,调试 Hash、List 等复杂结构,省去大量 get/hget 命令 |
| 运维日常巡检 | 定期查看实例状态、慢查询、复制状态,提前发现潜在风险,避免故障爆发 |
| 团队多人运维协作 | 非 DBA 人员也可以可视化查看 Redis 运行状态,降低 Redis 运维的上手门槛 |
| 离线复盘分析 | 导入 RDB 备份文件,离线分析历史内存占用、Key 分布,复盘线上事故 |
| 本地 / 测试环境管理 | 统一管理多套 Redis 实例,不用频繁登录服务器操作 redis‑cli |
🧰技术栈
- 前端:React,Web交互界面
- 后端:Redis官方自研服务,兼容Redis 5.0及以上版本
- 部署方式:Docker容器部署为主,也支持二进制包
- 连接协议:支持Redis、Redis‑Sentinel、Redis‑Cluster
2.安装前提条件
安装redis
Redis‑Sentinel是Redis官方提供的高可用组件,用于实现Redis主节点故障时自动故障转移、状态监控、告警通知。⚠️哨兵不能独立工作,必须依赖一套运行正常的Redis环境,它本身不负责存储业务数据,只做监控、投票与切换。
在部署哨兵之前,需要完成硬件资源、网络连通、软件版本、主从复制环境、文件权限、密码认证等多维度前置准备。如果前置条件缺失,极易出现哨兵无法监控实例、故障误判、投票失败、故障切换不生效、切换后配置错乱等各类线上问题。
💡还未完成Redis基础安装的小伙伴,可以参考这篇实操教程:零基础搭建缓存,Redis 完整安装部署实操教程,先把Redis环境搭建完毕,再部署哨兵。
网络与端口条件
Redis 业务实例默认端口为 6379;Redis‑Sentinel哨兵默认端口是5540。 部署前务必确认端口放行,网络互通要求如下:
- Redis节点,以及哨兵节点之间内网网络互通;都要能正常访问对应端口。
- 防火墙、安全组、iptables需要开放Redis业务端口与Sentinel哨兵端口;如果哨兵端口为
5540,则放行6379与5540。 - Redis实例不能只绑定
127.0.0.1,需要监听内网网卡IP,否则其他服务器上的哨兵无法建立连接。 - Docker/NAT端口映射环境下部署哨兵风险较高,必须配置
announce‑ip、announce‑port宣告对外地址,避免哨兵获取到容器内部地址,导致节点间通信异常,生产环境尽量规避端口映射方式。 - 禁止仅用公网IP 做哨兵集群通信,优先使用内网IP,减少延迟与安全风险。
3.安装Redis‑Sentinel
后台启动Redis‑Insight容器,映射5540端口用于Web访问,浏览器访问宿主机:5540 即可打开Redis可视化分析工具:
docker run -d \
--name redis-insight \
-p 5540:5540 \
-v redis-insight-data:/db \
redislabs/redisinsight:2.56
查看容器状态 :
docker ps
容器启动成功后,浏览器访问:http://服务器IP:5540,就可以访问到Redis‑Sentinel的页面啦。
4.使用Redis‑Sentinel
4.1 初始化
Redis‑Insight首次打开的许可与隐私设置页面,勾选已阅读协议后点击Submit即可完成初始化进入工具:
成功登录进来啦!
4.2 添加数据库
添加前确认我们的redis数据库已经成功启动:
systemctl start redis
systemctl status redis
连接我们的redis数据库:
Redis‑Insight手动添加Redis数据库的配置页面,填写Redis实例IP地址与端口,用户名固定填default,再填入Redis访问密码,点击测试连接,提示连接成功后,即可完成Redis实例接入,注意Redis本身无用户名体系:
连接成功!
4.3 基础使用
这是Redis‑Insight的数据浏览主界面,已经成功连接上Redis数据库,展示db0数据库里面全部的key。
`Total:20`:当前db0一共存在20条Redis键值数据
彩色标签:代表 Redis 数据类型
- HASH(蓝色):哈希类型,类似对象,大量
sample_session:*会话数据、sample_jobQueue:*任务队列 - LIST(绿色):列表,
sample_jobQueue:waitingList等待任务队列 - SORTED SET(紫红色):有序集合,
sample_leaderboard:tetris俄罗斯方块排行榜
- 每一行显示:key名称、TTL过期时间(1mo1 个月、29 d29 天、No limit永不过期)、占用存储空间大小。
这些是Redis‑Insight自带的示例测试数据,不是业务真实数据。
左侧列表选中一个key,右侧就会展示这条key内部完整字段和内容:
Redis‑Insight 的Workbench(网页 CLI)不支持执行 select 命令切换数据库。
网页工作台的数据库,只能在页面顶部下拉框选择db0/db1/db2,不能敲 select数字。
Redis‑Insight 的 Workbench(网页 CLI 命令工作台),网页版 Redis 命令行终端,不用登录服务器,直接在浏览器执行 Redis 命令。
数据库分析统计面板,用来做Redis内存、key数据类型分析,当前查看的是db1。
Redis发布订阅 (Pub/Sub) 可视化调试面板,用来测试消息发布‑订阅模式,实现消息广播。
4.4 创建key
- Key(右上角红色框):按钮功能,点击弹出窗口,用来手动新增 Redis 键值数据。
- Key Type:Hash:选择数据类型为哈希,Hash 适合存储对象,类似 Java 对象、数据库一行记录,由多个
field‑value字段组成。 - Key Name:
user:Redis 大 key 名字,整个哈希对象的名称。
下方是Hash内部字段:
username:字段名,值:shanuserid:字段名,值:001
我们添加完key以后,可以登录到redis验证一下:
- 注意:现在是db1,不是默认db0,命令行需要切换数据库
select 1
登录 redis‑cli
redis-cli -h 192.168.42.140 -p 6379 -a 123456
切换到db1
select 1
查找全部key
keys *
输出可以看到 user
⚠生产环境禁止keys *,生产用 scan
读取 Hash(user)完整全部字段
HGETALL user
验证成功,可见我们同步成功!
反之我们给user哈希新增字段,比如新增age、phone:
HSET user age 22 phone 13800138000
查询是否插入成功:
HGETALL user
验证成功~
本地部署的Redis‑Insight默认仅能在内网访问,借助cpolar内网穿透工具,无需公网IP、不用配置路由器端口映射,就可以把Redis‑Insight的5540端口暴露到公网,随时随地通过公网地址远程访问Redis‑Insight可视化面板,远程查看Redis内存指标、分析大Key、排查线上缓存故障,方便运维人员在外也能完成Redis监控与问题排查,高效实现跨网络运维管理。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:Redis‑Sentinel,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:5540
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
7.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Redissentinel,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
日常运维Redis时,遇到慢查询、内存异常、键值混乱等问题,纯命令行排查效率低,调试过程繁琐费力。Redis‑Insight作为可视化Redis分析工具,能够图形化直观查看Redis数据、内存占用、慢日志、客户端连接、键分布等核心信息,不用反复敲大量命令,降低问题排查门槛。
它支持浏览所有键、解析内存占用、分析慢查询记录、监控运行指标,帮运维人员快速定位内存暴涨、热key、异常连接等常见故障,简化Redis的调试与排错流程,提升问题处理效率。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。[cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访


































