redis服务器serverCron函数每100毫秒执行一次,负责管理服务器资源,保持服务器良好运行。

更新服务器时间缓存

服务器有很多功能需要获取系统当前时间,每次获取时间需要执行一次系统调用,为了减少系统调用执行次数,服务器状态中的unixtime(秒)属性和mstime(毫秒)属性被用来当前时间缓存:
因为100毫秒执行一次,所以这两个时间精度不高,对时间精度要求不高的用这个,要求高的还是执行系统调用。

  • 打印日志、更新LRU时钟、决定是否执行持久化任务、计算服务器上线时间用该属性
  • 为键设置过期时间、添加慢查询日志,会执行系统调用



更新LRU时钟

服务器状态中lruclock属性保存服务器lru时钟,也是缓存,每10秒更新1次。
每个redis对象都会有1个lru属性,该属性保存对象最后一次被访问时间。当服务器计算一个键的空转时间就会用这个lruclock属性减去对象的lru属性,结果就是这个对象的空转时间,时间越小表示键约活跃。

标签: none

添加新评论