您的位置:首页 > 科技 > IT业 > 北京建站公司_贵阳网站开发谁家做的好_网站安全检测工具_免费百度下载

北京建站公司_贵阳网站开发谁家做的好_网站安全检测工具_免费百度下载

2025/4/17 9:53:17 来源:https://blog.csdn.net/weixin_49622776/article/details/146957594  浏览:    关键词:北京建站公司_贵阳网站开发谁家做的好_网站安全检测工具_免费百度下载
北京建站公司_贵阳网站开发谁家做的好_网站安全检测工具_免费百度下载

一、命令流程


二、Redis慢查询

1、慢查询值指是什么

  • redis命令的执行时间
  • 记录内容: 执行时间超过预设阈值( slowlog-log-slower-than )的命令。
  • 存储方式:基于内存的固定长度队列(通过 slowlog-max-len 配置),以先进先出(FIFO)方式管理。
    • 超出配置长度,弹出最早插入的那条数据
  • 不记录的情况:仅记录实际执行时间,不包括网络传输,排队等待耗时。

2、慢查询的阈值

参数默认值说明

slowlog-log-slower-than

10毫秒执行时间超过此值的命令会被记录。设为0记录所有命令,-1关闭记录。
slowlog-max-len128慢查询日志的最大条数。超出时旧日志被删除。

3、两种方法进行设置

  • 动态设置:无需重启。 (.bash文件)
    • CONFIG SET slowlog-log-slower-than 20000  # 设为20毫秒
      CONFIG SET slowlog-max-len 500            # 存储500条日志
  • 持久化配置:修改 redis.conf 文件并重启

4、查看与分析慢查询日志

  • 查看日志
    • SLOWLOG GET [n]   # 获取最近的n条记录(不指定n则返回全部)
  • 日志字段说明
    • (integer) 3               # 日志唯一ID
      (integer) 1630456789      # 执行时间戳(Unix时间)
      (integer) 15000           # 执行耗时(微秒)
      a、 "KEYS"                # 命令及其参数
      b、"user:*"   

5、常见慢查询场景与优化

典型场景

  • 大Key操作:如读取10MB的String(GET huge_key)。

  • 复杂命令KEYS *FLUSHALLHGETALL大Hash。

  • 批量操作:一次性删除百万级成员的集合(DEL big_set)。

  • Lua脚本:执行时间过长的脚本。

优化建议

  • 避免大Key:拆分Key(如将大Hash拆分为多个小Hash)。

  • 替代危险命令:用SCAN代替KEYS,用HSCAN代替HGETALL

  • 管道与批量操作:减少网络往返,但避免单次批量过大。

  • 监控Lua脚本:确保脚本逻辑高效,避免长时间执行。


6、辅助工具与命令

  • 清空日志

    • SLOWLOG RESET
    • slowlog reset命令用于清空慢查询日志,它没有任何参数或选项。执行该命令后,redisServer.slowlog_entry_id的值将被重置为0,所有慢查询日志都将被删除
  • 仅获取日志数量

    • SLOWLOG LEN
  • 性能分析工具

    • redis-cli --latency:检测网络延迟。

    • MONITOR:实时查看所有命令(谨慎使用,影响性能)。

示例:

SLOWLOG GET 1
1) 1) (integer) 122) (integer) 16305000003) (integer) 25000       # 25毫秒4) 1) "HGETALL"2) "user:1001:profile"

优化步骤:

  1.         检查 user:1001:profile 的Hash大小,若字段过多,拆分为多个Hash
  2.         使用HSCAN分页读取,避免一次性获取全部数据。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com