Redis是单线程为何性能还高

[复制链接]
发表于 2026-1-9 02:08:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
配景

        通常来讲,提到性能优化,我们都会说进步并行度。同样我们知道,Redis是单线程实行下令,那为何还能保持云云的高性能呢?
缘故原由

        基于内存访问

        Redis 将全部数据存储在内存中,内存的读写速率远远高于磁盘,因此 Redis 可以或许提供极高的数据处理惩罚速率。Redis将全部数据放在内存中,内存的相应时长约莫为100纳秒,这是Redis到达每秒万级别访问的告急根本。
        优化的数据布局

        Redis 使用了多种高效的数据布局来存储差异范例的数据,如链表、跳跃表、哈希表等,这些数据布局都颠末了优化,可以或许提供快速的读写利用
        非壅闭IO

        Redis 使用了I/O 多路复用技能,如 epoll(在 Linux 体系上),这答应 Redis 在单一线程中同时处理惩罚多个网络毗连,而不会由于等候某个网络利用而壅闭。
        单线程制止了线程切换和竞态

        单线程能带来几个利益:
        第一,单线程可以简化数据布局和算法的实现。如果对高级编程语言熟悉的读者应该相识并发数据布局实现不光困难而且开发测试比力贫困。
        第二,单线程制止了线程切换和竞态产生的斲丧,对于服务端开发来说,锁和线程切换通常是性能杀手。
        
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表