使用RedisInsight Slowlog调试工具调试Redis
作者:阿吉特·辛格·雷纳
RedisInsight是Redis的免费GUI,允许您使用Slowlog分析工具识别瓶颈并进行故障排除。如果您在Redis操作中遇到高延迟和高CPU使用率,并且正在寻找调试和跟踪Redis数据库的工具,那么RedisInsight Slow Log是一个非常适合您的工具。
Redis Slow Log在显示每个Slow命令的实际处理时间方面非常有效。Redis slowlog是超过指定运行时间的所有命令的日志。请注意,测量中不包括网络延迟,只包括实际执行命令所需的时间。Redis慢速日志是Redis实例的慢速操作列表。
按照以下步骤了解如何利用Slowlog解决性能问题。
#
第一步。创建Redis数据库跟随https://developer.redislabs.com/create安装和创建Redis数据库的步骤
#
步骤2:下载RedisInsight要在本地系统上安装RedisInsight,首先需要从Redis实验室网站下载软件。万博电竞客服
单击此链接访问允许您选择所选操作系统的窗体。
运行安装程序。web服务器启动后,打开http://YOUR_HOST_IP:8001 并添加一个Redis数据库连接。
选择“连接到Redis数据库”
输入请求的详细信息,包括名称、主机(端点)、端口和密码。然后单击“添加REDIS数据库”。
#
第三步。使用RedisInsight GUI连接到数据库#
步骤4:单击“Slowlog”,然后单击“配置Slowlog”#
第五步。配置Slowlog有两种与slowlog查询相关的配置-
- slowlog log slow than:用于设置慢查询的计算时间,即超过此配置项的命令将被视为慢操作,并记录在慢查询日志中。其执行单位为微秒(1秒等于1000000微秒);
- slowlog max len:用于配置慢速查询日志中的最大记录数。
请注意,负数将禁用slowlog,而零值将强制记录每个命令。Slowlog max len是Slowlog的长度。最小值为零。记录新命令时,如果slowlog已达到其最大长度,则会从记录的命令队列中删除最旧的命令,以腾出空间。可以通过编辑redis.conf或在服务器运行时使用CONFIG GET和CONFIG SET命令来完成配置。
Slowlog将记录运行时间超过Y微秒的最后X个查询数(数量)。您可以在redis.conf中或在运行时使用CONFIG命令进行设置
#
第六步。准备向Redis数据库添加大型数据集的脚本要查看slowlog的运行情况,让我们选取一个大型数据集。创建名为importcities.py的文件并添加以下内容:
创建一个名为config.py的文件,如下所示:
确保提供正确的主机和端口详细信息。
执行脚本:
您将看到以下结果:
如果要模拟慢日志,则考虑使用KEY命令。始终建议不要使用钥匙在您的常规应用程序代码中。如果您正在寻找在密钥空间的一个子集中找到密钥的方法,请考虑使用扫描或设置.
KEYS命令在大型数据库上执行时可能会破坏性能
让我们试着在RedisInsight CLI中运行KEYS*,看看它是否会生成slowlog,如下所示:
再运行一次,您将注意到以下内容:
尝试减少执行时间(50毫秒),您会注意到下面的运行查询也会登录到slowlog中
#
第七步。配置执行时间slowlog中的每个条目都包含四个字段:slowlog条目ID、命令运行时的Unix时间戳、以微秒为单位的执行时间、包含命令本身的数组以及任何参数。请参见下面的示例输出:
为了检索slowlog查询,必须使用slowlog GET X。其中X是要检索的慢速查询数。
如上所示,结果显示唯一的id、时间戳、以微秒为单位执行查询所用的时间,以及实际执行的命令+参数。值得注意的是,慢速测井是瞬态的;它没有持久性,因此在故障转移的情况下,slowlog将丢失。如果你想依赖一个持久的slowlog,你需要重新考虑你的设计选择
请注意:如果选择“0”,则会强制记录每个命令,而“-1”会禁用slowlog。
重要的
在集群数据库中,每个节点可以有不同的slowlog值。您需要使用配置工具为集群数据库配置slowlog。