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

 

posted @ 2022-03-13 14:33  WK_BlogYard  阅读(17685)  评论(1编辑  收藏  举报