为什么 Redis 单线程模型也能效率这么高?

本文阅读 2 分钟
首页 Mysql 正文

1、C 语言实现。

我们都知道,C 语言的执行速度非常快。
  • 2、纯内存操作。

    Redis 为了达到最快的读写速度,将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以 Redis 具有快速和数据持久化的特征。

    如果不将数据放在内存中,磁盘 I/O 速度为严重影响 Redis 的性能。

  • 3、基于非阻塞的 IO 多路复用机制。
  • 4、单线程,避免了多线程的频繁上下文切换问题。

    Redis 利用队列技术,将并发访问变为串行访问,消除了传统数据库串行控制的开销。

    实际上,Redis 4.0 开始,也开始有了一些异步线程,用于处理一些耗时操作。例如说,异步线程,实现惰性删除(解决大 KEY 删除,阻塞主线程)和异步 AOF (解决磁盘 IO 紧张时,fsync 执行一次很慢)等等。

  • 5、丰富的数据结构。

    Redis 全程使用 hash 结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化。例如,压缩表,对短数据进行压缩存储;再再如,跳表,使用有序的数据结构加快读取的速度。

    也因为 Redis 是单线程的,所以可以实现丰富的数据结构,无需考虑并发的问题。

本文来自投稿,不代表本站立场,如若转载,请注明出处:
如何解决分布式事务?
« 上一篇 09-17
Kubernetes组件
下一篇 » 09-25

发表评论

发表评论