Redis为什么快
面试中经常会被问到这种问题,redis到底为什么快?为什么要使用redis?为什么redis单线程还这么快
关于这个问题,主要归功于下面五个原因,还有的就是不常说的,在面试中可以提一嘴用来装b,如果被深挖下去没答出来也是有可能的,所以要考虑清楚到底是否要说。
- redis是基于内存操作的,所以他比数据库(磁盘)要快几十倍,甚至到100倍左右。
- redis内部经过非常优秀的调整,使其的数据结构性能非常的高。
- redis使基于C语言实现的,更加接近底层。
- redis是单线程。
- 使用了IO多路复用(epoll),非阻塞型IO。
不常说的有以下几个
- 使用的底层模型不同,redis自己构建了VM机制,使其不会浪费时间去移动和请求系统函数
- 高效的数据结构(这点为上面的第二点展开来讲)
- 简单动态字符串SDS
- 双端链表
- 压缩列表
- 字典
- 跳跃表
- 合理的数据编码
redis是单线程解析,为什么redis单线程还快?
redis是单线程指的是命令的读写和网络IO是单线程,其他操作,比如异步删除,持久化<