为什么Redis单线程还那么快

为什么Redis单线程还那么快

Redis的性能非常高,每秒可以承受10W+的QPS,它的优秀性能得益于:

  • 纯内存操作
  • 高效的数据结构
  • 使用IO多路复用技术
  • 非CPU密集型任务
  • 单线程的优势

纯内存操作

  • Redis是一个内存数据库,它的数据都在内存中,读写数据速度在硬件上远超硬盘性数据库
  • Redis是一个KV内存的数据库,内部实现的哈希表,在读写时,只需要O(1)

高效的数据结构

Redis抛弃很多C语言提供的标准数据结构,自实现了效率更高的数据结构,如list,zset

使用IO多路复用技术

Redis利用IO多路复用技术的事件驱动模型,保证在监听多个Socket连接的情况下,只针对有活动的Socket采取反应。

非CPU密集型任务

Redis作者认为,Redis是IO密集型任务居多,网络请求IO才是Redis的性能瓶颈,处理器并不是。无需多线程也能胜任工作。

单线程的优势:

  • 没有多线程上下文切换的性能损耗
  • 没有访问共享资源加锁的性能损耗
  • 开发和调试非常友好,可维护性高

Redis单线程的缺点

单线程处理最大的缺点就是,如果前一个请求发生耗时比较久的操作,那么整个Redis就会阻塞住,其他请求也无法进来,直到这个耗时久的操作处理完成并返回,其他请求才能被处理到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值