在之前的 redis的key过期了还能取出来?,在这里对key的过期策略进行了简单的分析,惰性过期和定期过期,对定期清理这块讲的并不透彻,这次来根据源码分析下。 先上下逻辑,此逻辑图根据redis官方5.0分支梳理。 定期过期-慢循环 在redis源码阅读二-终于把redis的启动流程搞明白了这一文中。 我们知道redis启动会注册一个Time Event 事件,里面的执行逻辑是:serverCron 在server.c中,其中databaseCron()函数中会调用慢循环进行过期key清理。 int server…

2021/12/20 0条评论 166点热度 0人点赞 阅读全文

之前分析了通过redis源码阅读二-终于把redis的启动流程搞明白了分析了redis的启动流程,通过redis源码阅读三-终于把主线任务执行搞明白了分析了redis的主线任务,这次从redis6.2分支上分析redis6的io多线程。 我注释的代码主要在redis5.0分支上。6.2上注释的比较少。 https://github.com/yxkong/redis/tree/6.2 https://github.com/yxkong/redis/tree/5.0 acceptTcpHandler处理的差异 虽然最终…

2021/12/16 0条评论 225点热度 0人点赞 阅读全文

在redis源码阅读二-终于把redis的启动流程搞明白了 介绍redis的启动流程,也画了一张图。今天我来详细讲解下redis的主线任务是怎么执行的。 我们先看一下流程图 在redis的主线任务里,主要有三大块: eventLoop->beforesleep 创建回调的写事件并绑定处理器sendReplyToClient,在handleClientsWithPendingWrites aeProcessEvents 执行整主流程,主要功能 从epoll读取fd,将读取的数据写入server.clients …

2021/12/14 0条评论 185点热度 0人点赞 阅读全文

阅读redis的源码永远也绕不过它的启动。我们来看下redis的启动流程。不想看代码可以直接看最后的流程图。 以下源码分析是redis的5.0分支 源码注释:https://github.com/yxkong/redis/commits/5.0 这是启动流程的核心代码。 int main(int argc, char **argv) { //申请空间oom后的处理器 zmalloc_set_oom_handler(redisOutOfMemoryHandler); //哨兵模式 server.sentinel_mo…

2021/12/10 0条评论 221点热度 0人点赞 阅读全文
12
losmovies watch movies online free Watch Inventing Anna 2022 Free Online Watch All of Us Are Dead 2022 Free Online Watch Resident Alien 2021 Free Online