Redis--单线程模型

devtools/2025/3/4 21:25:09/

目录

一、引言

二、Redis单线程模型

三、原因

redis%E6%98%AF%E5%8D%95%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%EF%BC%8C%E4%BD%86%E4%BB%96%E7%9A%84%E9%80%9F%E5%BA%A6%E8%BF%99%E4%B9%88%E5%BF%AB%EF%BC%9F-toc" name="tableOfContents" style="margin-left:0px">四、为什么redis是单线程模型,但他的速度这么快?

五、总结


一、引言

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

二、Redis单线程模型

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

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

三、原因

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

redis%E6%98%AF%E5%8D%95%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%EF%BC%8C%E4%BD%86%E4%BB%96%E7%9A%84%E9%80%9F%E5%BA%A6%E8%BF%99%E4%B9%88%E5%BF%AB%EF%BC%9F" name="%E5%9B%9B%E3%80%81%E4%B8%BA%E4%BB%80%E4%B9%88redis%E6%98%AF%E5%8D%95%E7%BA%BF%E7%A8%8B%E6%A8%A1%E5%9E%8B%EF%BC%8C%E4%BD%86%E4%BB%96%E7%9A%84%E9%80%9F%E5%BA%A6%E8%BF%99%E4%B9%88%E5%BF%AB%EF%BC%9F">四、为什么redis是单线程模型,但他的速度这么快?

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

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

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

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

五、总结

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


http://www.ppmy.cn/devtools/164559.html

相关文章

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数 - 详解(6)

详解(6) 初始化监听套接字数组(listening) n old_cycle->listening.nelts ? old_cycle->listening.nelts : 10;if (ngx_array_init(&cycle->listening, pool, n, sizeof(ngx_listening_t))! NGX_OK){ngx_destroy_p…

Git GitHub基础

git是什么? Git是一个分布式版本控制系统,用于管理源代码的变更。它允许多个开发者在同一个项目上协作,同时跟踪每个修改的历史记录。 关键词: 分布式版本控制软件 软件 安装到我们电脑上的一个工具 版本控制 例如论文&…

【easy视频 | day03】客户端获取视频分类 + 上传投稿

文章目录 前言回顾完成任务1. 客户端获取视频分类2. 上传视频(投稿)2.1 预上传2.2 视频分片上传2.3 删除已上传到临时目录的视频2.4 上传图片2.5 上传视频 总结 前言 本项目非原创,我只是个小小白,跟随 b 站脚步,找到…

JavaWeb后端基础(4)

这一篇就开始是做一个项目了,在项目里学习,我主要记录在学习过程中遇到的问题,以及一些知识点 Restful风格 一种软件架构风格 在REST风格的URL中,通过四种请求方式,来操作数据的增删改查。 GET : 查询 …

江协科技/江科大-51单片机入门教程——P[3-1] 独立按键控制LED亮灭

本文围绕51单片机开发中的独立按键控制技术展开,系统讲解其硬件结构、电平检测原理与C51编程实现方法。文章从开发板独立按键的物理构造与电路连接入手,剖析按键按下与松开时的电平变化规律,并结合单片机I/O口寄存器操作原理,阐释…

【Elasticsearch】Data Streams

Elasticsearch 的Data Streams是一种用于高效管理和存储时间序列数据(如日志、事件、指标等)的机制。它通过将数据分散到多个后端索引中,同时提供一个统一的接口,使得用户可以像操作单个索引一样操作整个数据流。以下是关于 Data …

第七章:项目实战 - 第三节 - Tailwind CSS 电商网站开发

本节将介绍如何使用 Tailwind CSS 开发一个现代化的电商网站,包括商品展示、购物车、结算流程等核心功能的实现。 商品列表 商品卡片组件 // components/ProductCard.tsx interface ProductCardProps {product: {id: string;title: string;price: number;image: …

在笔记本电脑上用DeepSeek搭建个人知识库

最近DeepSeek爆火,试用DeepSeek的企业和个人越来越多。最常见的应用场景就是知识库和知识问答。所以本人也试用了一下,在笔记本电脑上部署DeepSeek并使用开源工具搭建一套知识库,实现完全在本地环境下使用本地文档搭建个人知识库。操作过程共…