redis底层原理
面试官:Redis 为什么这么快?除了基于内存操作还有其他原因吗? - 知乎 (zhihu.com)
redis的操作都是基于内存的,绝大部分请求是纯粹的内存操作,非常迅速。
使用单线程可以省去多线程时CPU上下文会切换的时间,也不用去考虑各种锁的问题,不存在加锁释放锁操作,没有死锁问题导致的性能消耗。对于内存系统来说,多次读写都是在一个CPU上,没有上下文切换效率就是最高的!既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章的采用单线程的方案了
总结:
redis是纯内存操作:数据存放在内存中,内存的响应时间大约是100纳秒,这是Redis每秒万亿级别访问的重要基础。非阻塞I/O:Redis采用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接,读写,关闭都转换为了时间,不在I/O上浪费过多的时间。单线程避免了线程切换和竞态产生的消耗
Redis线程模型
Redis内部使用文件事件处理器,这个处理器是单线程的,所以redis是单线程的模型。它由套接字、I/O多路复用程序、
redis底层原理最先出现在Python成神之路。
共有 0 条评论