Redis被广泛使用的一个很重要的原因是它的高性能。因此我们必要要重视所有可能影响Redis性能的因素、机制以及应对方案。影响Redis性能的五大方面的潜在因素,分别是:
本篇文章我们主要了解Redis内部的阻塞式操作以及应对方法。
在分析阻塞点前,我们先来看看和Redis实例交互的对象和操作有哪些:
这些交互操作可能会产生潜在的阻塞点。
异步执行对操作的要求:如果一个操作 有被异步执行,意味着它不是Redis主线程的关键路径上的操作。
上面的五个阻塞点中,是关键路径操作的有:
下面我们来了解一下异步执行机制。主线程通过一个链表形式的任务队列和子线程进行交互,如下图所示:
Redis主线程启动后,会创建三个子线程来负责AOF日志写操作、键值对删除以及文件关闭的异步执行。
异步的键值对删除和数据库清空操作是Redis 4.0后提供的功能,Redis也提供了新的命令来执行这两个操作:
FLUSHDB ASYNC
和FLUSHALL AYSNC
。本文就写到这了,有人看的话再抽时间写一下后面四篇吧,
也许干巴巴的文字看起来有写枯燥,如果单看文字不是很容易消化的话,可以进群973961276来跟大家一起交流学习,群里也有许多视频资料和技术大牛,配合文章一起理解应该会让你有不错的收获。
推荐一个不错的c/c++ 初学者课程,这个跟以往所见到的只会空谈理论的有所不同,这个课程是从六个可以写在简历上的企业级项目入手带领大家学习c/c++,正在学习的朋友可以了解一下。