Redis为什么这么快?经典面试题

想必看过来的都是准备刷面试题的

本人也是在一次校招面试中遇到了这个问题,当时也只就把基于内存以及C语言编写答出来了
在这里插入图片描述
(TCL是什麽鬼语言,实在是没听说过)
首先列出下面最基本的:
基于内存
C语言开发

ex1:K-V 数据库
熟悉数据结构的人应该知道目前查询时间复杂度较低的数据结构Map(Json数据同理)也是以查询高效被大范围使用
所以其五大数据结构类型均采用K-V形式也是其中的一个要点。

ex2:单线程单进程(此处关联Memcache多核多线程,mongodb多进程单线程,Hbase多线程)
个人认为此处也是考个人有没有准备八股文的分水岭,毕竟只是用的话这玩意也没啥实感。其单线程单进程的特点,无需加锁切换线程之类的多余操作,不仅保证了高效读取,而且最重要的是没有线程干扰问题。(网络请求部分单线程)
此处关联下方redis6.0+多线程情况
ex3:基于IO多路复用机制的线程模型
在这里插入图片描述
图来源于https://blog.csdn.net/a745233700/article/details/113488673
具体来说就是开通多个socket通道,通过io多路复用程序进行队列整理,最后由事件分派器进行请求回应处理工作。

ex4:redis6.0以后变成多线程,为什么要采用多线程
减少网络io阻塞(也就是socket这方面的阻塞),充分利用cpu资源以提升性能

ex4.1:会出现线程干扰吗
在这里插入图片描述
执行命令的这一部分是单线程的,不会有线程干扰出现。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值