本文主要讲解“Redis中什么是慢查询订阅模式”。本文的解释简单明了,易学易懂。接下来,请跟随边肖的思路,一起学习学习《Redis中的慢查询订阅模式是什么》!
00-1010慢速查询日志是系统执行命令时每个命令的执行时间。当超过阈值时,将记录该命令。【
慢查询
发送命令
命令排队
命令执行
返回结果
命令执行是缓慢查询统计的时间。
00-1010慢log-log-slow-than:预设阈值,单位为毫秒。如果执行“慢速”命令,如果执行时间超过阈值,将记录执行时间。
Slowlog-max-len:设置存储的最大慢速查询日志数。
Redis命令执行流程
Redis提供发布订阅功能,可用于消息传输。Redis的发布订阅机制包括三个部分:发布者、订阅者和渠道。
00-1010使用发布命令发送消息。
使用Subscribe命令订阅频道。
模式匹配:同时订阅多个频道,命令为psunsubscribe。
00-1010主动处理
定时处理:设置到期时间时创建一个定时器,到期时间到了立即删除。这个操作是瞬间的,不管这个时间段有多少过期的密钥,也不管服务器是怎么运行的,都会被删除,对CPU不是很友好。
定期删除意味着设置时间间隔。每个时间段都会检测是否有过期密钥,如果有,就删除。
被动疗法
当再次访问过期密钥时,将判断该密钥是否过期。如果已经过期,将被删除并返回NIL。这种处理方式对CPU友好,不会为其他过期密钥占用CPU,但对内存不友好。一键已过期,但操作前不会删除,仍占用内存空间。如果大量过期的按键不再操作,会浪费大量的内存空间。
3.3对过期密钥的处理。RDB和AOF
如果执行save或bgsave命令来创建RDB,程序将检查数据库中的密钥,过期的密钥将不会保存在新创建的RDB文件中。
当过期的密钥被延迟删除或定期删除时,程序将向AOF文件追加一个DEL命令,以明确记录该密钥已被删除。
在执行AOF重写的过程中,程序会检查数据库中的密钥,过期的密钥不会保存在重写的AOF文件中。
慢查询两个配置参数
no viction:默认策略,不会删除任何数据,拒绝所有写操作并返回客户端错误消息,此时,Redis只响应读操作。
根据LRU算法删除带有超时属性的密钥,直到有足够的可用空间。如果没有要删除的关键对象,返回到noeviction策略。
Allkeys-lru:根据lru算法删除密钥,不管数据是否有超时属性,直到有足够的空间可用。
Allkeys-random:随机删除所有密钥,直到有足够的可用空间。
volatile-random:随机删除过期的密钥,直到有足够的空间。
volatile-ttl:根据键值对象的TTL属性,删除最近将要过期的数据。如果没有,回到无受害者政策。
感谢阅读。以上就是《Redis中什么是慢查询订阅模式》的内容。看完这篇文章,相信你对Redis中什么是慢查询订阅模式有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/93193.html