首页 > 技术文章 > 为什么redis是单线程的,但是并发量如此高?

wpccc 2020-05-01 20:22 原文

1. redis和memcached的区别

  • redis支持的数据结构更加丰富,memcached操作比较复杂
  • memcached不支持原生的集群模式,redis是支持的
  • memcached不支持数据持久化,redis有aof和rdb

2. redis为什么是单线程的

  • redis是单线程,通过IO多路复用提高单核的处理能力
  • 单线程处理起来比较简单
  • 单线程可以避免大量的线程切换,竞争带来的资源消耗。
  • redis是纯内存操作,性能瓶颈并不在IO上

如果说想充分利用CPU的多核,可以启多个Redis。 目前最新版的redis是有多线程版本了,我觉得最主要的是首先要理解为什么会有多线程的诞生,什么场景下才会用到多线程,多线程给我们带来了什么好处,引入了什么问题。通过redis的单线程模型可以思考很多问题。

推荐阅读