redis 的过期key 的删除策略有三种
- 惰性删除
- 定时删除
- 定期删除
上面三种的区别自行搜索,这里主要围绕 3 展开
关于redis 有几个线程,上篇文章有介绍,但还有一个问题,redis 处理 过期key的线程和 接受请求的线程是不是同一个?如果是它们是怎么协调的
首先,它们是同一个线程,具体的实现是通过利用时间分片的方式解决的
redis 分为两种事件,时间事件和文件事件,文件事件也就是处理客户端请求,时间事件是指周期性的处理一些后台任务,后台任务不一定就是多线程
上面这张图大概描述了redis 服务启动的整个流程
1 | // 创建事件循环 |
1 | /* Create the timer callback, this is our way to process many background |
1 | /* Register a readable event for the pipe used to awake the event loop |
简单点讲,利于epoll的超时机制同时监听两个事件,优先处理文件事件,在没有文件事件处理,又到了超时时间便处理时间事件,所以,时间事件是有可能延迟的。
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章