【数据库】Redis性能问题有哪些,如何分析定位解决?(约276字)

# Redis性能问题有哪些,如何分析定位解决?

举几个例子

  • 看延迟 60 秒内的最大响应延迟:
$ redis-cli -h 127.0.0.1 -p 6379 --intrinsic-latency 60
Max latency so far: 1 microseconds.
Max latency so far: 15 microseconds.
Max latency so far: 17 microseconds.
Max latency so far: 18 microseconds.
Max latency so far: 31 microseconds.
Max latency so far: 32 microseconds.
Max latency so far: 59 microseconds.
Max latency so far: 72 microseconds.
 
1428669267 total runs (avg latency: 0.0420 microseconds / 42.00 nanoseconds per run).
Worst run took 1429x longer than the average latency.
  • 慢日志(slowlog)

慢查询,就会导致后面的请求发生排队,对于客户端来说,响应延迟也会变长。

图片[1]-【数据库】Redis性能问题有哪些,如何分析定位解决?(约276字)-IT面试吧

  • bigkey

大对象

  • 集中过期

一般有两种方案来规避这个问题:

  1. 集中过期 key 增加一个随机过期时间,把集中过期的时间打散,降低 Redis 清理过期 key 的压力
  2. 如果你使用的 Redis 是 4.0 以上版本,可以开启 lazy-free 机制,当删除过期 key 时,把释放内存的操作放到后台线程中执行,避免阻塞主线程
  • fork耗时严重

主进程创建子进程,会调用操作系统提供的 fork 函数

  • 使用Swap

当内存中的数据被换到磁盘上后,Redis 再访问这些数据时,就需要从磁盘上读取,访问磁盘的速度要比访问内存慢几百倍!

  • 内存碎片

Redis 4.0 版本,它正好提供了自动碎片整理的功能,可以通过配置开启碎片自动整理

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容