Redis闭坑,到底是单线程还是多线程

redis   2020-07-28 13:02   396   0  


Redis到底是单线程还是多线程?快在哪里?

  • Redis 6.0版本之前的单线程指的是其网络I/O和键值对读写是由一个线程完成的。

  • Redis6.0引入的多线程指的是网络请求过程采用了多线程,而键值对读写命令仍然是单线程处理的,所以Redis依然是并发安全的,也就是只有数据操作模块是单线程的,而其它的持久化、集群数据同步等,其实是由额外的线程执行的。

1675924957704-b873294e-6213-4d15-a735-aaa9842007e6.png

单线程的Redis为何还这么快

  1. 命令执行基于内存操作,一条命令在内存里操作的时间是几十纳秒

  2. 命令执行是单线程操作,没有线程切换开销

  3. 基于IO多路复用机制提升Redis的I/O利用率,linux(epoll)

  4. 高效的数据存储结构: 全局hash表以及多种高效数据结构,比如: 跳表,压缩列表,链表等等

跳表

image.png


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。