工欲善其事,必先利其器。在使用Redis的时候如果能够有效利用Redis的各种管理工具,将会大大方便开发和管理。

一、 redis-cli

相信大家对redis-cli已经很熟悉了,作为Redis自带的命令行客户端,你可以从任何安装有Redis的服务器中找到它,所以对于管理Redis而言redis-cli是最简单实用的工具。redis-cli可以执行大部分的Redis命令,包括查看数据库信息的INFO命令,更改数据库设置的CONFIG命令和强制进行RDB快照的SAVE命令等,下面会介绍几个管理Redis时非常有用 的命令。
1.耗时命令日志

当一条命令执行时间超过限制时,Redis会将该命令的执行时间等信息加入耗时命令日志(slow log )以供开发者查看。可以通过配置文件的slowlog-log-slower-than 参数设置这一限制,要注意单位是微秒(1000000微秒相当于1秒),默认值是10000。耗时命令日志存储在内存中,可以通过配置文件的slowlog-max-len 参数来限制记录的条数。

使用SLOWLOG GET命令来获得当前的耗时命令日志,如:

redis>SLOWLOG GET
1) 1) (integer) 4
2) (integer) 1356806413
3) (integer) 58
4) 1) "get"
2) "foo"
2) 1) (integer) 3
2) (integer) 1356806408
3) (integer ) 34
4) 1) "set"
2) "foo"
3) "bar "

每条日志都由以下4个部分组成:
(1)该日志唯一ID;
(2)该命令执行的UNIX时间;
(3)该命令的耗时时间,单位是微秒;
(4)命令及其参数。
为了产生一些耗时命令日志作为演示,这里将slowlog-log-slower-than 参数值设置为O,即记录所有命令。如果设置为负数则会关闭耗时命令日志。

2.命令监控

Redis提供了MONITOR命令来监控Redis执行的所有命令,redis-cli同样支持这个命令,如在redis-cli中执行MONITOR:

redis>MONITOR
OK

这时Redis执行的任何命令都会在redis-cli中打印出来,如我们打开另一个redis-cli执行SET foo bar命令,在之前的redis-cli中会输出如下内容:

1356806981.885237 [0 127.0.0.1:57339] "SET" "foo" "bar

MONITOR命令非常影响Redis的性能,一个客户端使用MONITOR命令会降低 Redis将近一半的负载能力。所以MONITOR命令只适合用来调试和纠错。

Instagram团队开发了一个基于MONITOR命令的Redis查询分析程序redis-faina。redis-faina可以根据MONITOR命令的监控结果分析出最常用的命令、访问最频繁的键等信息,对了解Redis的使用情况帮助很大。

Instagram 是Facebook 旗下的图片分享社区。redis-faina的项目地址是https://github.com/Instagram/redis-faina,直接下载其中的redis-faina.py文件即可使用。

redis-faina.py的输入值为一段时间的MONITOR命令执行结果。例如:

redis-cli MONITOR | head -n  <要分析的命令数> | ./redis-faina.py

二、 phpRedisAdmin

当Redis中的键较多时,使用redis-cli管理数据并不是很方便,就如同管理MySQL时有人喜欢使用phpMyAdm in 一样,Redis同样有一个PHP开发的网页端管理工具phpRedisAdmin 。phpRedisAdmin 支持以树形结构查看键列表,编辑键值,导入/导出数据库数据,查看数据库信息和查看键信息等功能。

1.安装phpRedisAdmin

安装phpRedisAdmin 的方法如下:

git clone http s://github.com /ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin

phpRedisAdmin 依赖PHP的Redis客户端Predis,所以还需要执行下面两个命令下载Predis:

git submodule init
git submodule update

2.配置数据库连接

下载完phpRedisAdmin 后需要配置Redis的连接信息。默认phpRedisAdmin 会连接到127.0.0.1,端口6379,如果需要更改或者添加数据库信息可以编辑includes文件夹中的config.inc.php文件。

3.使用phpRedisAdmin

安装PHP和Web服务器(如Nginx),并将phpRedisAdmin文件夹存放到网站目录中即可访问,

phpRedisAdmin自动将Redis的键以“:”分隔并用树形结构显示出来,十分直观。如post :1和post :2两个键都在post树中。
     点击一个键后可以查看键的信息,包括键的类型、生存时间及键值,并且可以很方便地编辑。

4.性能
     phpRedisAdmin在获取键列表时使用的是KEYS *命令,然后对所有的键使用TYPE命令来获取其数据类型,所以当键非常多的时候性能并不高(对于一个有一百万个键的Redis数据库,在一台普通个人计算机上使用KEYS *命令大约会花费几十毫秒)。由于Redis使用单线程处理命令,所以对生产环境下拥有大数据量的数据库来说不适宜使用phpRedisAdmin管理.

三、 Rdbtools
       Rdbtools是一个Redis的快照文件解析器,它可以根据快照文件导出JSON数据文件、分析Redis中每个键的占用空间情况等。Rdbtools是使用Python 开发的,项目地址是
https://github.com/sripathikrishnan/redis-rdb-tools。

1.安装Rdbtools
使用如下命令安装Rdbtools:

git clone https://github.com/sripathikrishnan/redis-rdb-tools
cd  redis-rdb-tools
sudo python setup.py instal l

2.生成快照文件
     如果没有启用RDB持久化,可以使用SAVE命令手动使Redis生成快照文件。

3.将快照导出为JSON格式
快照文件是二进制格式,不利于查看,可以使用Rdbtools来将其导出为JSON格式,命令如下:

rdb --command json /path/to/dump.rdb > output_file name.json

其中/path/to/dump.rdb是快照文件的路径,output_filename.json 为要导出的文件路径。

4.生成空间使用情况报告
     Rdbtools能够将快照文件中记录的每个键的存储情况导出为CSV 文件,可以将该CSV 文件导入到Excel等数据分析工具中分析来了解Redis的使用情况。命令如下:

rdb -c memory /path/to/dump.rdb > output_filename.csv

导出的CSV 文件的字段及说明如下所示

Redis研究(十四)—管理工具相关推荐

  1. Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)

    Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...

  2. 银河麒麟桌面操作系统V10上安装使用redis及图形界面管理工具RDM(RedisDesktopManager)

    前言 本文介绍银河麒麟桌面系统V10上redis及图形管理工具的安装使用 一.安装Redis 点击UK图标.所有程序.终端,打开终端 输入安装指令sudo apt install redis-serv ...

  3. 最常用的十大管理工具 公司管理常用哪几种管理工具

    1.SWOT分析 SWOT方法是一种经过优势.劣势.机会和威胁四个步骤形成的一种管理方法,其实主要被分为内部和外部两个因素,并且主要应用在有着较高行业竞争力的领域,如广告业.金融经纪业行业等. 2.头 ...

  4. Redis(十四):Jedis

    Jedis是Redis官方推荐的Java连接开发工具.要在Java开发中使用好Redis中间件,必须对Jedis熟悉才能写成漂亮的代码! 1.新建Maven工程,导入对应依赖 <dependen ...

  5. 程序员必备的十四款工具,你都用过吗?

    大家好,我是"前端点线面",一位新生代农民工,欢迎关注我获取最新前端知识和大量思维导图("百题斩"获取<前端百题斩>pdf版:分别回复"g ...

  6. 乌合之众-大众心理研究(十四)

    第一卷群体的性格. 第四章.群体信念都采取的一种宗教形式. 1.什么是宗教热忱 2.宗教热忱不需要崇拜某个商品. 3.宗教热诚的特点. 4.信念,采取宗教形式hold力量各种例子,民众的重赏从未消失. ...

  7. 一个redis集群的管理工具

    分享一下: 1.源代码: 请查看附件redis-manager-src.zip 2.linux安装包: 请查看附件redis-manager-1.1-linux-chinese-new.zip 以上程 ...

  8. Redis核心解读–集群管理工具(Redis-sentinel)

    Redis-sentinel是Redis实例的监控管理.通知和实例失效备援服务,是Redis集群的管理工具.在一般的分布式中心节点数据库中,Redis-sentinel的作用是中心节点的工作,监控各个 ...

  9. 【Redis学习】Redis的安装、管理、适用场合以及使用

    1.Redis概述 我们知道,内存是电脑主板上的存储部件,用于存储当前正在使用的数据和程序,CPU可以与内存直接沟通,所以访问速速非常高:而外存数据必须加载到内存以后程序才能使用.如果把CPU当做一个 ...

  10. 【科研论文】写作技巧及文献管理工具

    论文写作技巧 文献检索途径 Google scholar Semantic scholar Github --Explore more / 综述文献 awesome - Cited by 查看最新引用 ...

最新文章

  1. Mysql 事务中Update 会锁表吗?
  2. MySQL:Can't connect to mysql server 10038
  3. 45.Keepalived高可用群集
  4. 快速失败(fail-fast)和安全失败(fail-safe)
  5. pandas: DataFrame在数据处理时一些常用的操作汇总
  6. django与easyui使用过程中遇到的问题
  7. 性能测试脚本之SQLServer执行语句
  8. 如何修改php的网页文件,php如何修改php文件内容
  9. ZOJ-1094-Matrix Chain Multiplication
  10. 博文视点大讲堂第45期——我们应该向魔兽世界学习什么 圆满结束
  11. es6箭头函数内部判断
  12. 微型计算机原理小闹钟,微机原理课程设计_电子钟的设计.doc
  13. html用户注册md5,用web浏览框实现MD5加密
  14. ASA K8升级到K9
  15. Permute 3 for mac(万能音视频转换器)
  16. 土方回填施工方案范本_土方回填施工方案.doc.docx
  17. 常用C++库及测试程序
  18. 面板显示技术:LCD与OLED
  19. docker基础手册
  20. 43、DNS域名系统(应用层)

热门文章

  1. Jsp/Servlet中实现登录注册功能
  2. 第二十三章《斗地主游戏》第2节:系统功能实现
  3. 一次CPU空转问题排查引出的队列知识
  4. 6266:取石子游戏
  5. 笔记----idea
  6. Android java.lang.NoClassDefFoundError: Failed resolution of: Lcom/zhihu/matisse/R$plurals(使用知乎开源相册)
  7. 基于verilog的非归零编码、非归零反转编码、归零编码(RZ)
  8. 用c语言输出杨辉三角形
  9. 西门子real是什么数据类型_西门子S7-1500 PLC的基本数据类型
  10. Pygame:摩擦摩擦