Redis排查头疼?Redis‑Insight帮你直观分析数据

前言

作为后端开发、运维与架构师日常高频使用的缓存与中间件,Redis支撑着绝大多数业务的缓存读写、热点数据存储、分布式锁等核心场景。但在实际运维与问题排查过程中,很多人都会陷入繁琐低效的困境:线上Redis出现内存暴涨、接口超时、主从延迟、OOM溢出、缓存异常等问题时,只能依靠零散的命令行指令排查,反复执行 INFO、slowlog、MEMORY、bigkeys等指令拼凑数据,不仅操作繁琐、耗时耗力,还难以直观洞察数据全貌、定位隐性问题。

尤其是隐藏的大Key、热点Key、内存碎片过高、过期策略异常、慢查询堆积等隐蔽故障,单纯依赖命令行排查门槛高、效率低,极易出现排查不全面、问题定位滞后的情况,甚至导致线上业务抖动、服务卡顿等风险,让不少开发者倍感头疼。传统排查方式依赖经验、数据可视化缺失、问题溯源困难,已然无法适配高效的线上运维排查需求。

针对Redis排查的各类痛点,Redis-Insight凭借轻量化、可视化、全维度的分析能力,成为高效排查Redis问题的利器。它摒弃了繁琐的命令行操作,以可视化界面直观呈现Redis内存占用、Key分布、数据结构、慢查询日志、集群状态、主从同步情况等核心信息,一键识别异常Key、内存瓶颈与性能隐患,简化排查流程、降低运维门槛,让复杂的Redis数据分析与故障排查变得清晰、高效、直观。本文将带大家全面解锁Redis-Insight的核心能力,手把手掌握可视化排查技巧,轻松搞定Redis各类疑难问题。

9d3d7c6ea30d6ce256aea18dc5638434

1.什么是Redis‑Insight?

Redis‑Insight是Redis官方开源、可自托管的Redis可视化分析工具,定位为Redis图形化运维排查工具,主打把晦涩的Redis命令行指标转化为直观的Web可视化界面,实现零复杂命令完成Redis监控、数据分析与故障排查。

✨核心特点

  1. 界面与体验

Web图形化操作界面,不用记忆大量Redis命令;提供内存分析、慢查询、键浏览器、集群监控等多个功能视图;支持筛选检索Key、查看不同数据结构详情,普通运维人员不用反复敲命令,浏览器上即可完成绝大部分Redis排查操作。

  1. 数据自主可控

支持本地Docker部署,连接自建Redis、主从、哨兵、Redis‑Cluster集群;所有分析运算在自己服务端完成,不会把业务数据上传第三方,不用担心业务敏感缓存数据外泄。

  1. 问题排查能力

一键识别大Key、热Key,直观查看内存占用分布、内存碎片率;完整展示慢查询日志,统计命令调用情况;可以查看客户端连接、主从复制状态、持久化RDB/AOF状态,快速定位OOM、卡顿、延迟等线上问题。

  1. 扩展能力

内置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。 部署前务必确认端口放行,网络互通要求如下:

  1. Redis节点,以及哨兵节点之间内网网络互通;都要能正常访问对应端口。
  2. 防火墙、安全组、iptables需要开放Redis业务端口与Sentinel哨兵端口;如果哨兵端口为5540,则放行63795540
  3. Redis实例不能只绑定127.0.0.1,需要监听内网网卡IP,否则其他服务器上的哨兵无法建立连接。
  4. Docker/NAT端口映射环境下部署哨兵风险较高,必须配置announce‑ipannounce‑port宣告对外地址,避免哨兵获取到容器内部地址,导致节点间通信异常,生产环境尽量规避端口映射方式。
  5. 禁止仅用公网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

8010d3290eb2e35aff076404c3b7972b

查看容器状态 :

docker ps

127b633f6038d28f8e818227784d2968

容器启动成功后,浏览器访问:http://服务器IP:5540,就可以访问到Redis‑Sentinel的页面啦。

fa9a825e7197fc7788197970a245d3b1

4.使用Redis‑Sentinel

4.1 初始化

Redis‑Insight首次打开的许可与隐私设置页面,勾选已阅读协议后点击Submit即可完成初始化进入工具:

7b923ff3203d9a02f09a0a751c7a8a2f

成功登录进来啦!

b39f2c5675325b0a9f3b3d4495b7fddc

4.2 添加数据库

添加前确认我们的redis数据库已经成功启动:

systemctl start redis
systemctl status redis

img

连接我们的redis数据库:

769f85499703b60f41d50c5fcb1fe6d8

Redis‑Insight手动添加Redis数据库的配置页面,填写Redis实例IP地址与端口,用户名固定填default,再填入Redis访问密码,点击测试连接,提示连接成功后,即可完成Redis实例接入,注意Redis本身无用户名体系:

c02adb410a2cffd495938ee58177091e

连接成功!

0d49060af06ea70f6f2138c21608e41c

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自带的示例测试数据,不是业务真实数据。

b48d9e8eeebbb1622d3adb31bc467abd

左侧列表选中一个key,右侧就会展示这条key内部完整字段和内容:

9d3d7c6ea30d6ce256aea18dc5638434

Redis‑Insight 的Workbench(网页 CLI)不支持执行 select 命令切换数据库

网页工作台的数据库,只能在页面顶部下拉框选择db0/db1/db2,不能敲 select数字

img

Redis‑Insight 的 Workbench(网页 CLI 命令工作台),网页版 Redis 命令行终端,不用登录服务器,直接在浏览器执行 Redis 命令。

img

数据库分析统计面板,用来做Redis内存、key数据类型分析,当前查看的是db1

img

Redis发布订阅 (Pub/Sub) 可视化调试面板,用来测试消息发布‑订阅模式,实现消息广播。

img4.4 创建key

  • Key(右上角红色框):按钮功能,点击弹出窗口,用来手动新增 Redis 键值数据。
  • Key Type:Hash:选择数据类型为哈希,Hash 适合存储对象,类似 Java 对象、数据库一行记录,由多个field‑value字段组成。
  • Key Nameuser:Redis 大 key 名字,整个哈希对象的名称。

下方是Hash内部字段:

  • username:字段名,值:shan
  • userid:字段名,值:001

img

我们添加完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

3fd120b192d4537ada9ff98a3877c4df

验证成功,可见我们同步成功!

反之我们给user哈希新增字段,比如新增agephone

HSET user age 22 phone 13800138000

查询是否插入成功:

HGETALL user

19a9a083d1c6170b9020be440ce684a7

验证成功~

371a915c6a71e764650720908dbba1df

本地部署的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步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:Redis‑Sentinel,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:5540
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260813163631939

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260813163652793

访问成功。

image-20260813172704378

7.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Redissentinel,大家可以自定义。填写备注信息,点击保留。

image-20260813173047148

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260813173109509

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20260813173139567

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260813173220219

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260813173353769

总结

日常运维Redis时,遇到慢查询、内存异常、键值混乱等问题,纯命令行排查效率低,调试过程繁琐费力。Redis‑Insight作为可视化Redis分析工具,能够图形化直观查看Redis数据、内存占用、慢日志、客户端连接、键分布等核心信息,不用反复敲大量命令,降低问题排查门槛。

它支持浏览所有键、解析内存占用、分析慢查询记录、监控运行指标,帮运维人员快速定位内存暴涨、热key、异常连接等常见故障,简化Redis的调试与排错流程,提升问题处理效率。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。[cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访

Share:

发表回复

目录

On Key

推荐文章