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

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

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

慢查询

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

Redis命令执行流程

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

  • 发送命令

  • 命令排队

  • 命令执行

  • 返回结果

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

慢查询两个配置参数

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

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

发布订阅模式

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

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

发布订阅功能

  • 发送消息采用publish命令

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

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

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

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

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

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中慢查询和订阅模式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/204082.html

(0)
上一篇 2021年11月28日
下一篇 2021年11月28日

相关推荐

发表回复

登录后才能评论