ItGo.me - 专注IT技术分享

首页 > Redis > Redis 响应延迟问题排查

Redis 响应延迟问题排查

时间:2016-08-28来源:网友分享 点击:

参考原文:

最近数据量越来越多,并发写操作很多的情况下,Redis出现响应慢的情况;

可以使用 Redis命令来测试一下redis的响应速度:

redis-cli --latency -h 'xxx' -p 'xxxx'

这条命令会向Redis插入示例数据来检查平均延时。 Ctrl+C可以随时结束测试;

下面我们列一下会出现延时的可能:

  • 硬件,系统:硬件问题是所有问题最底层的问题了,如果硬件慢,例如CPU主频低,内存小,磁盘IO慢,这些会让所有运行在上面的系统响应慢;另外,使用虚拟机会让系统运行的性能太为下降;当然,有钱的话,这问题很容易解决;系统方面,Linux本身的系统资源调度也会产生一定的延时。这些一般不会很大,可以忽略不计;

  • 网络:如果客户端和redis在同一台服务器上,使用socket建立连接会比监听 TCP/IP 端口快很多;

  • Redis命令:一些时间复杂度比较高的命令,如 lrem,sort,sunion等命令会花比较长时间;另外,大量的重复连接也会造成延时,重用连接是一种很好的品质;如果有大量写操作,可以使用 pipeline 管道的方式(类似mysql事务),一次性提交,这样数据量也少了,连接次数也少了,不用每次都返回数据,速度自然会快很多;

  • 持久化:Redis持久化需要fork出一个进程来进行持久化操作,这本身就会引发延时,如果数据变化大,RDB配置时间短,那这个代价还是挺大的;再加上,硬盘这东西真有点不靠谱,如果还是虚拟机上的虚拟硬盘,如果还是NFS共享目录,那这延时会让你崩溃。所以,如果系统不需要持久化,关了吧。



Redis提供了SlowLog可以供我们分析执行速度慢的命令,可以分析一下;操作系统方面,可以使用 iostat 查看一下硬盘速度,使用 vmstat 查看一下内存分页情况;

整体优化好,系统响应才会更快;

来自:


Redis 响应延迟问题排查

Redis 响应延迟问题排查  讨论


Redis全内存运行

在某些使用场景中,我们并不需要使用redis的持久化,反而需要发挥redis的内存数据库特性,实现完全内存运行,达到需要的高性能。 Redis 本身支持持久化,通过在一定时间间隔或触发操作,将...

Webdis - 一个快速的 Redis HTTP 接口

Webdis是一个简单的 HTTP 服务器。它将操作命令转发至Redis,然后按你选择的格式送发请求返回。它用到了 , , , 和 这些第三访包。支持以下特性: 支持GET 和 POST,和 PUT用于文件上传 默认返回输...

REDIS 字典数据结构

对于REDIS来讲 其实就是一个字典结构,key ----value 就是一个典型的字典结构 【当然 对于vaule来讲的话,有不同的内存组织结构 这是后话】 试想一个这样的存储场景: key:"city" value:"beijing" 如果...

参考原文: 最近数据量越来越多,并发写操作很多的情况下,Redis出现响应慢的情况; 可以使用 Redis命令来测试一下redis的响应速度: redis-cli--latency-h'xxx'-p'xxxx' 这条命令会向Redis插入示例数据
------分隔线----------------------------