redis快的四个原因
- 基于内存:相较于其他数据库,基于内存进行数据交互,避免频繁与磁盘交互。
- 结构简单:redis仅支持字符串String、列表List、集合Set、哈希Hash和有序集合zSet五种数据结构。在redis6中增加了BitMaps(二进制位运算,可用于点赞数据)、HyperLogLog(基数计算,可用于处理UV)、Geospatial(计算GEO)
- 单线程调度:相比内存和网络带宽,cpu不是redis的瓶颈,采用单线程能很好的避免高并发场景下的上下文切换,更快一些。
- 多路IO复用:参考Java的NIO模型,一个select选择器会归并多个socket连接,当socket准备就绪后,select才会将其交由redis去执行。