Redis线程模型

文章目录

  • [💖 Redis 单线程模型](#💖 Redis 单线程模型)
    • [⭐ 单线程监听大量的客户端连接](#⭐ 单线程监听大量的客户端连接)
    • [⭐ Redis 6.0 之前为什么不用多线程?](#⭐ Redis 6.0 之前为什么不用多线程?)
  • [💖 Redis多线程](#💖 Redis多线程)
    • [⭐ Redis 后台线程](#⭐ Redis 后台线程)
    • [⭐ Redis 网络IO多线程](#⭐ Redis 网络IO多线程)

对于读写命令来说,Redis 一直是单线程模型。不过,在 Redis 4.0 版本之后引入了多线程来执行一些大键值对的异步删除操作 , Redis 6.0 版本之后引入了多线程来处理网络请求(提高网络 IO 读写性能)
👨‍🏫 Redis 线程模型(重要)

💖 Redis 单线程模型

⭐ 单线程监听大量的客户端连接


⭐ Redis 6.0 之前为什么不用多线程?

  • 单线程编程容易并且更容易维护
  • Redis 的性能瓶颈不在 CPU,主要在内存和网络
  • 多线程就会存在死锁、线程上下文切换等问题,甚至会影响性能

Redis 6.0 版本之前的单线模式如下图:

💖 Redis多线程

⭐ Redis 后台线程

👨‍🏫 小林Coding Redis 线程模型

  • close_file:表示关闭相应文件描述符对应的文件(释放套接字、数据空间等)
  • aof_fsync:表示 AOF 刷盘
  • lazy_free:表示惰性释放空间


⭐ Redis 网络IO多线程

java 复制代码
//读请求也使用io多线程
io-threads-do-reads yes 

同时, Redis.conf 配置文件中提供了 IO 多线程个数的配置

java 复制代码
// io-threads N,表示启用 N-1 个 I/O 多线程(主线程也算一个 I/O 线程)
io-threads 4 
相关推荐
末日汐10 小时前
磁盘与文件系统
linux·运维·数据库
win x10 小时前
Redis集群
java·数据库·redis
qq_124987075310 小时前
基于Spring Boot的“味蕾探索”线上零食购物平台的设计与实现(源码+论文+部署+安装)
java·前端·数据库·spring boot·后端·小程序
江上月51310 小时前
JMeter中级指南:从数据提取到断言校验全流程掌握
java·前端·数据库
晨旭缘10 小时前
零基础后端入门:JDK21 + PostgreSQL+Java项目
java·数据库·postgresql
萧曵 丶10 小时前
MySQL InnoDB 实现 MVCC 原理
数据库·mysql·mvcc
ss27310 小时前
ruoyi 新增每页分页条数
java·数据库·mybatis
oMcLin11 小时前
如何在 Debian 10 上通过配置 Redis 集群的持久化选项,提升高可用性缓存系统的容错性与性能?
redis·缓存·debian
万粉变现经纪人11 小时前
如何解决 pip install mysqlclient 报错 ‘mysql_config’ not found 问题
数据库·python·mysql·pycharm·bug·pandas·pip
lkbhua莱克瓦2411 小时前
进阶-SQL优化
java·数据库·sql·mysql·oracle