Redis--单线程模型

目录

一、引言

二、Redis单线程模型

三、原因

四、为什么redis是单线程模型,但他的速度这么快?

五、总结


一、引言

本篇文章就Redis为什么是单线程模型做简单介绍。

二、Redis单线程模型

redis只使用一个线程,处理所有的命令请求,但是不是说redis服务器内部真的就只有一个线程,其实也有多个线程,这些线程在处理网络IO。

假设同时有两个客户端向redis服务器发送了命令请求,但是redis还是会将这些请求进行串行执行。

三、原因

redis之所以是单线程模型,是因为redis的核心业务逻辑都是短平快的,不太消耗CPU的资源,也就不需要多核了,但是redis就会存在一个弊端,如果某个操作消耗的时间太长,例如keys * 这样的操作,就会阻塞其他命令的执行!

四、为什么redis是单线程模型,但他的速度这么快?

1.redis的操作是访问内存,而其他数据库访问的是硬盘,所以redis比较快。

2.redis核心功能比数据库的核心功能更简单。

3.redis每个基础操作都是短平快的,就是简单操作一下内存数据,而不是什么特别消耗CPU的操作,就算搞个多线程提升也不大。

4.处理网络IO的时候,使用了epoll这样的**IO多路复用(一个线程处理多个Socket)**机制。

五、总结

本文就简单介绍了一下redis的单线程模型,以及其为什么是单线程模型,感谢观看!

相关推荐
刘一说1 小时前
深入理解 Spring Boot 中的数据库迁移:Flyway 与 Liquibase 实战指南
数据库·spring boot·oracle
August_._1 小时前
【MySQL】SQL语法详细总结
java·数据库·后端·sql·mysql·oracle
蓝象_2 小时前
docker下载配置redis
redis·docker·容器
升鲜宝供应链及收银系统源代码服务2 小时前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
苦学编程的谢3 小时前
Redis_8_List
数据库·redis·缓存
曹天骄3 小时前
阿里云 DCDN → CDN 无缝切换教程(以 example.com 为例)
数据库·阿里云·云计算
一个不称职的程序猿4 小时前
高并发场景下的缓存利器
java·缓存
workflower4 小时前
软件工程-练习
数据库·需求分析·个人开发·极限编程·结对编程
扶尔魔ocy5 小时前
【QT自定义2D控件】QGraphics绘制仪表盘
数据库·qt·microsoft
yookay zhang5 小时前
达梦数据库监听进程
网络·数据库·oracle