Redis中慢查询和订阅模式是什么

70次阅读
没有评论

共计 1368 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要讲解了“Redis 中慢查询和订阅模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Redis 中慢查询和订阅模式是什么”吧!

慢查询

慢查询日志就是系统在命令执行时每条命令的执行时间,当超过阀值,就将这条命令记录下来。【

Redis 命令执行流程

发送命令

命令排队

命令执行

返回结果

其中命令执行才是慢查询统计的时间

慢查询两个配置参数

slowlog-log-slower-than:预设阀值,单位是毫秒,假如执行一条“很慢”的命令,执行时间超过阀值就会被记录下来

slowlog-max-len: 设置慢查询日志最多存储多少条

发布订阅模式

Redis 提供了发布订阅功能,可以用于消息的传输,Redis 的发布订阅机制包括三个部分,发布者,订阅者和 Channel。

发布订阅功能

发送消息采用 publish 命令

订阅某个频道采用 subscribe 命令订阅

模式匹配:同时订阅多个频道,命令是 PSUBSCRIBE

Redis 过期时间处理

主动处理

定时处理,在设置过期时间的时候创建一个定时器,当过期时间到的时候立马执行删除操作,这个操作是即时的,不管在这个时间段内有多少过期 Key, 也不管服务器运行情况,都会被删除,对 CPU 不是很友好。

定期删除,定期删除是设置一个时间间隔每个时间段都会检测是否有过期键,如果有就执行删除,

被动处理

当已经过期的 key 再次被访问时,才会对 key 是否过期进行判断,如果已经过期,则进行删除,并返回 NIL. 这种处理方式对 CPU 是友好的,不会对其他过期 key 上占用 CPU, 但对内存不友好,一个 key 已经过期,但是在它被操作前都不会被删除,仍然占用内存空间,如果有大量过期 Key 没有被再次操作,则会浪费大量内存空间。

3.RDB 与 AOF 对过期键的处理

如果在执行 save 或者 bgsave 命令创建一个 RDB 时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的 RDB 文件中。

当过期键被惰性删除或者定期删除之后,程序会向 AOF 文件追加(append)一条 DEL 命令,来显式地记录该键已被删除。

在执行 AOF 重写的过程中,程序会对数据库中的键进行检查,已过期的键不会被保存到重写后的 AOF 文件中。

内存回收

noeviction:默认策略,不会删除任何数据,拒绝所有写入操作并返回客户端错误信息,此时 Redis 只响应读操作。

volatitle-rlu:根据 LRU 算法删除设置了超时属性的键,知道腾出足够空间为止。如果没有可删除的键对象,回退到 noeviction 策略。

allkeys-lru:根据 LRU 算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。

allkeys-random:随机删除所有键,知道腾出足够空间为止。

volatitle-random:随机删除过期键,知道腾出足够空间为止。

volatitle-ttl:根据键值对象的 ttl 属性,删除最近将要过期数据。如果没有,回退到 noeviction 策略

感谢各位的阅读,以上就是“Redis 中慢查询和订阅模式是什么”的内容了,经过本文的学习后,相信大家对 Redis 中慢查询和订阅模式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计1368字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)