Redis 官方推荐可视化工具,功能强大!
原文链接:https://mp.weixin.qq.com/s/xNhhSnEZvEmzas9J-Wejwg
前言
RedisLabs在2019年11月发布了全新的Redis GUI工具RedisInsight。主要提供以下主要功能:
-
Inspect your Redis data
-
monitor health
-
perform runtime server configuration with a browser-based management interface for your Redis deployment.
大部分Redis可视化工具都提供第3项的功能:监控网页展示、通过网页交互的方式与Redis交互等这些内容。RedisInsight不仅提供以上功能,而且在1、2两个方面都做的很出色。你可以通过它,直接获取每个key在Redis存储类型 、所占字节数、编码方式等详细信息,方便调试开发,预估容量。同时它还支持内存分析,方便优化内存。支持对客户端分析,方便查找热key、热命令。随着Redis4.0 RedisModule功能的广泛使用,各种开源的SO也形成了一个新的生态圈。
RedisInsight支持以下三种广泛使用的SO数据显示与搜索:图数据库RedisGraph、时序数据库RedisTimeSeries、全文检索Redisearch。
RedisInsight简介
RedisInsight是Redis官方出品的可视化管理工具,可用于设计、开发、优化你的Redis应用。支持深色和浅色两种主题,界面非常炫酷!可支持String、Hash、Set、List、JSON等多种数据类型的管理,同时支持远程使用CLI功能,功能非常强大!
下面是RedisInsight的一张使用效果图,颜值不错!
安装
首先我们将使用Docker来安装Redis,注意下载Redis的完全体版本RedisMod,它是内置了所有模块的增强版Redis!
- 使用如下命令下载RedisMod的镜像;
docker pull redislabs/redismod:preview
在容器中运行RedisMod服务。
docker run -p 6379:6379 --name redismod \
-v /mydata/redismod/data:/data \
-d redislabs/redismod:preview
使用
Redis服务安装完毕,接下来我们就使用RedisInsight来管理下它试试!
基本使用
下面详细介绍一下RedisInsight。
下载地址:https://redis.com/redis-enterprise/redis-insight/
下载完成后直接安装即可,安装完成后在主界面选择添加Redis数据库
;
选择手动添加数据库
,输入Redis服务连接信息即可;
打开连接后即可管理Redis,右上角会显示已经安装的Redis增强模块;
接下来我们就可以通过RedisInsight在Redis中添加键值对数据了,比如添加String
类型键值对;
添加Hash类型,编辑的时候可以单个属性编辑,还是挺方便的;
添加List类型,编辑的时候可以直接Push元素进去;
添加JSON类型,安装RedisJSON模块后可支持;
对原生JSON类型,不仅支持高亮预览,还能支持新增、编辑和删除单个属性,够方便!
另外RedisInsight还支持深色和浅色两种主题切换,在设置中即可更改。
CLI
- 如果RedisInsight的图形化界面功能满足不了你的话,还可以试试它的
CLI
功能,点击左下角CLI标签即可打开;
贴心的Redis官方怕你记不住命令,还添加了Command Helper
这个查找命令文档的功能,比如我们可以搜索下hget
这个命令的用法。
Profiler
通过Profiler功能,我们可以查看Redis的命令执行日志,比如我们使用RedisInsight添加一个叫testKey
的键值对,Profiler将显示如下日志。
可视化监控
RedisInsight的Redis监控功能比较简单,个人比较喜欢使用Grafana来监控Redis,Grafana的具体使用可以参考Grafana使用教程 。https://mp.weixin.qq.com/s/F392WVfVlqBNlUQVtQUn8A
安装Grafana
- 首先下载Grafana的Docker镜像;
docker pull grafana/grafana
下载完成后运行Grafana;
docker run -p 3000:3000 --name grafana \
-d grafana/grafana
接下来下载Prometheus的Docker镜像;
docker pull prom/prometheus
在/mydata/prometheus/
目录下创建Prometheus的配置文件prometheus.yml
:
global:
scrape_interval: 5s
运行Prometheus,把宿主机中的配置文件prometheus.yml
挂载到容器中去;
docker run -p 9090:9090 --name prometheus \
-v /mydata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-d prom/prometheus
进入grafana容器并安装redis-datasource
插件,安装完成后需要重启grafana服务。
docker exec -it grafana /bin/bash
grafana-cli plugins install redis-datasource
使用
- 连接到redismod需要使用到它的容器IP地址,使用如下命令查看redismod容器的IP地址;
在Grafana中配置好Redis数据源,使用admin:admin
账户登录,访问地址;http://192.168.3.105:3000/
配置Redis地址信息,注意使用redismod的容器IP地址;
打开Dashboard选择Redis;
接下来就可以看到一个非常完善的Redis监控仪表盘了,基本能满足Redis的监控需求。
2概述
展示redis实例总体常见监控指标:
浏览
1. Browser
实时展示各个db中的key:单独key的value、长度、所占字节数。支持在页面对key进行操作。
2. CLI
支持在页面直接执行Redis Command。
3. Stream
展示5.0支持的新数据结构Stream。
4
开源生态扩展
比如让Redis作为KV存储引擎,来开发其他类型数据库
1. RedisTimeSeries
解决了处理时序数据的需求,可以通过RedisInsight查询数据。
2. Redisearch
实现的全文检索功能服务,RedisInsight支持数据展示与查询。
3. RedisGraph
是一种高性能内存图数据库,可以通过RedisInsight展示详细数据信息。
5
分析
1. Memory Analysis
1)Overview
各种数据类型所占内存、各种数据类型数量以及未释放内存。
2)Keyspace Summary
对正则匹配类型Key分析类型,所占内存,热key。
3)Recommendations
对数据分析,提出合理建议:比如hash的配置浪费空间,建议合理配置。
4)Memory Analyzer
详细展示单个key的详细数据。
2. Profilter
在某时间断对所有客户端操作进行分析,找出热key和执行最频繁的命令。
3. slowlog展示
批量操作
提供各种批量操作:
-
对REDIS各种操作
-
将Redis导出为各种常用存储
-
从RDB中恢复数据
配置显示
1. 详细展示当前实例的配置
2. 展示连接客户端的详细数据
当然,上面只是其中部分功能展示,还有更多强大的功能,等着大家去发现。总之,这是一款非常推荐的redis可视化工具。
Linux下的安装与使用:参考: https://mp.weixin.qq.com/s/9oe8-X45LJfdH0IX3bxEaw
1)下载 RedisInsight 软件包:
https://redis.com/redis-enterprise/redis-insight/#insight-form
[root@Redis ~]# ls anaconda-ks.cfg redisinsight-linux64-1.11.0 [root@Redis ~]# mkdir /usr/local/redisinsight [root@Redis ~]# mv redisinsight-linux64-1.11.0 /usr/local/redisinsight/redisinsight-1.11.0 [root@Redis ~]# chmod +x /usr/local/redisinsight/redisinsight-1.11.0
2)配置 RedisInsight 的环境变量
[root@Redis ~]# echo "export REDISINSIGHT_HOST=192.168.1.1" >> ~/.bash_profile [root@Redis ~]# echo "export REDISINSIGHT_HOST_DIR=/usr/local/redisinsight/.redisinsight" >> ~/.bash_profile [root@Redis ~]# source ~/.bash_profile
注解:
REDISINSIGHT_PORT
:配置 RedisInsight 的监听端口(default:8001
)REDISINSIGHT_HOST
:配置 RedisInsight 的 IP 地址(default:0.0.0.0
)LOG_DIR
:配置 RedisInsight 的日志存放路径(default:REDISINSIGHT_HOST_DIR
)REDISINSIGHT_HOST_DIR
:配置 RedisInsight 的数据存放路径(default:~/.redisinsight
)
3)启动 RedisInsight 服务
[root@Redis ~]# nohup /usr/local/redisinsight/redisinsight-linux64-1.4.0 & // 后台运行 [root@Redis ~]# ps aux | grep redis // 查看进程是否存在
2.Kubernetes 安装
1)创建 RedisInsight 的 yaml 文件:
[root@Redis ~]# vim redisinsight.yaml apiVersion: v1 kind: Service metadata: name: redisinsight-service spec: type: NodePort ports: - port: 80 targetPort: 8001 nodePort: 31888 selector: app: redisinsight --- apiVersion: apps/v1 kind: Deployment metadata: name: redisinsight labels: app: redisinsight spec: replicas: 1 selector: matachLabels: app: redisinsight template: metadata: labels: app: redisinsight spec: containers: - name: redisinsight image: redislabs/redisinsight:1.7.0 imagePullPolicy: IfNotPresent volumeMounts: - name: db mountPath: /db ports: - containerPort: 8001 protocol: TCP volumes: - name: db emptyDir: {}
2)启动 RedisInsight
[root@Redis ~]# kubectl apply -f redisinsight.yaml
总结
RedisInsight不愧是官方出品的可视化工具,感觉是目前用起来体验最好的Redis工具了!特别是对Redis新特性的支持,其他工具是无法比拟的!不过对Redis的监控功能确实有点简单,还是得用专业的监控工具Grafana来监控Redis!
参考资料
感觉Redis的官方文档做的特别良心,强烈建议大家看下!
官方文档:https://developer.redis.com/explore/redisinsightv2