12、Redis真的是单线程吗

你好,我是蒋德钧。今天这节课,我们来聊聊Redis的执行模型。 所谓的执行模型,就是指Redis运行时使用的进程、子进程和线程的个数,以及它们各自负责的工作任务。 你在实际使用Redis的时候,可能经常会听到类似“Redis是单线程”“Redis的主...

Redis源码剖析与实战

13、Redis 6.0多IO线程的效率提高了吗

你好,我是蒋德钧。 通过上节课的学习,我们知道Redis server启动后的进程会以单线程的方式,执行客户端请求解析和处理工作。但是,Redis server也会通过bioInit函数启动三个后台线程,来处理后台任务。也就是说,Redis不再让主线...

Redis源码剖析与实战

14、从代码实现看分布式锁的原子性保证

你好,我是蒋德钧。 分布式锁是Redis在实际业务场景中的一个重要应用。当有多个客户端并发访问某个共享资源时,比如要修改数据库中的某条记录,为了避免记录修改冲突,我们可以让所有客户端从Redis上获取分布式锁,只有拿到锁的客户端才能操作共享资源。 那...

Redis源码剖析与实战

15、为什么LRU算法原理和代码实现不一样

你好,我是蒋德钧。 从这节课开始,我们就进入了课程的第三个模块:缓存模块。在接下来的三节课当中,我会给你详细介绍LRU、LFU算法在Redis源码中的实现,以及Redis惰性删除对缓存的影响。 学习这部分内容,一方面可以让你掌握这些经典缓存算法在一个...

Redis源码剖析与实战

16、LFU算法和其他算法相比有优势吗

你好,我是蒋德钧。 上节课我给你介绍了Redis对缓存淘汰策略LRU算法的近似实现。其实,Redis在4.0版本后,还引入了LFU算法,也就是最不频繁使用(Least Frequently Used,LFU)算法。LFU算法在进行数据淘汰时,会把最不...

Redis源码剖析与实战

17、Lazy Free会影响缓存替换吗

你好,我是蒋德钧。 Redis缓存淘汰算法的目的,其实是为了在Redis server内存使用量超过上限值的时候,筛选一些冷数据出来,把它们从Redis server中删除,以保证server的内存使用量不超出上限。我们在前两节课,已经分别学习了Re...

Redis源码剖析与实战
123458