zoukankan      html  css  js  c++  java
  • redis 慢查询、Pipeline

    1、慢查询
    1. 简介

      1. 慢查询顾名思义是将redis执行命令较慢的命令记录下来,redis处理慢查询时是将慢查询记录到慢查询队列中
    2. 慢查询配置

      1. slowlog-max-len 慢查询队列长度(记录多少条慢查询,默认128)
      2. slowlog-log-slower-than 慢查询阀值(单位:微秒,默认10000)

        1. slowlog-log-slower-than=0, 记录所有命令
        2. slowlog-log-slower-than<0, 不记录任何命令
      3. 查看当前配置
    127.0.0.1:6379> config get slowlog*
    1) "slowlog-log-slower-than"
    2) "10000"
    3) "slowlog-max-len"
    4) "128"
    1. 动态配置(还可以修改配置文件重启,但不建议,特别是没做持久化的redis)

      1. config set slowlog-max-len 100
      2. config set slowlog-log-slower-than 1000
    2. 慢查询命令

      1. slowlog get [n] : 获取慢查询队列
      2. slowlog len : 获取慢查询队列长度
      3. slowlog reset : 清空慢查询队列
    2、Pipeline(流水线)
    1. 简介

      1. redis执行一条命令有四个过程:发送命令、命令排队、命令执行、返回结果;整个过程是一个往返时间(RTT)。如果有n条命令,就会消耗n次RTT。Redis的客户端和服务端可能部署在不同的机器上。在两地的数据传输受网络速度的影响,消耗n次的RTT会增加网络成本,这个和Redis的高并发高吞吐特性背道而驰。Pipeline(流水线)机制能改善上面这类问题,它能将一组Redis命令进行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端。这样就只要一次的往返时间。
    2. 作用

      1. 为了解决批量处理而消耗的大量网络传输时间(因为redis执行是微妙级,大量操作更多消耗的是网络时间)
      2. 对比单次操作
    命令时间数据量特性
    n个命令 n次网络 + n次执行 1条命令 原子性
    1次pipeline(n个命令) 1次网络 + n次执行 n条命令 非原子性

    PS: 更多文章请关注微信公众号:浮话

  • 相关阅读:
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    程序员加班奇遇
    Spring Boot导出jar包发布
    Eclipse工具栏太多,自定义工具栏,去掉调试
    ${pageContext.request.contextPath}的解释以及和request.contextPath的区别
    request 获取各种路径
  • 原文地址:https://www.cnblogs.com/jie-hu/p/10947603.html
Copyright © 2011-2022 走看看