1、纯内存操作:无需进行磁盘IO
2、单线程,无锁竞争(无线程切换,上下文处理) 可以多实例
3、多路IO复用,非阻塞IO
4、高效的数据结构(如:HyperLogLog,密集型存储结构)
5、数据结构简单、对数据操作也简单
Redis的瓶颈
是内存大小、网络带宽,cpu不是!
为何引入多线程?
-
大键值的删除
-
多线程阻塞地释放内存,减少对Redis主线程(工作线程)的阻塞时间,提升性能
它是基于内存操作的,更好的维护性,也能并发处理用户请求(并发处理用户的连接,同时监听多个文件描述符的读、写状态)