原文鏈接: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