我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis使用单进程单线程模型的优缺点

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis使用单进程单线程模型的优缺点

今天就跟大家聊聊有关redis使用单进程单线程模型的优缺点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Redis采用的是基于内存的单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。

Redis快的主要原因是:            

完全基于内存

数据结构简单,对数据操作也简单

使用多路 I/O 复用模型

第一、二点不细讲,主要围绕第三点采用多路 I/O 复用技术来展开。

多路 I/O 复用模型是利用select、poll、epoll可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有I/O事件时,就从阻塞态中唤醒,于是程序就会轮询一遍所有的流(epoll是只轮询那些真正发出了事件的流),并且只依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。

这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗),且Redis在内存中操作数据的速度非常快(内存内的操作不会成为这里的性能瓶颈),主要以上两点造就了Redis具有很高的吞吐量。

和Memcached不同,Redis并没有直接使用Libevent,而是自己完成了一个非常轻量级的对select、epoll、evport、kqueue这些通用的接口的实现。

在不同的系统调用选用适合的接口,linux下默认是epoll。因为Libevent比较重更通用代码量也就很庞大,拥有很多Redis用不上的功能,Redis为了追求“轻巧”并且去除依赖,就选择自己去封装了一套。

单进程单线程好处

代码更清晰,处理逻辑更简单

不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗

不存在多进程或者多线程导致的切换而消耗CPU性能

单进程单线程弊端

无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善;

看完上述内容,你们对redis使用单进程单线程模型的优缺点有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis使用单进程单线程模型的优缺点

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis怎么用单线程模型

redis 单线程模型Redis 是一个开源的内存数据库,它以其高性能和灵活性而闻名。一个独特的特性是它采用单线程模型。单线程模型的优势单线程模型的主要优势在于:高吞吐量:由于没有线程上下文切换的开销,单线程可以处理大量的请求。低延迟
redis怎么用单线程模型
2024-05-21

聊聊Redis的单线程模型

Redis是单线程,主要是指Redis的网络IO和读写是由一个线程来完成的,但Redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。这不是本文讨论的重点,有个印象即可
2022-12-19

Redis的单线程模型怎么保证高性能

Redis的单线程模型通过以下几种方式保证高性能:非阻塞I/O:Redis使用非阻塞I/O模型,可以在一个线程中同时处理多个客户端请求,减少了线程切换的开销,提高了性能。事件驱动机制:Redis使用事件驱动机制来处理客户端请求,通过事件循环
Redis的单线程模型怎么保证高性能
2024-05-07

租用单程cn2的vps有哪些优缺点

优点:1. CN2线路速度快,适合需要高速网络的网站或应用。2. 单程CN2线路比双程CN2线路更稳定,不容易出现网络抖动或延迟。3. 单程CN2线路适合需要上传大量数据的应用或网站,因为上传速度比较快。缺点:1. 单程CN2线路的价格比较
2023-05-25

使用简单工厂模式来进行Python的设计模式编程

计模式的目的是让代码易维护、易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的。 简单工厂模式又叫静态工厂方法模式,工厂模式家族中最简单的一种模式。这个模式的基本工作方式: 通过一个工厂来决定创建哪种具体的产品实例。
2022-06-04

详解如何使用C++写一个线程安全的单例模式

这篇文章主要为大家详细介绍了如何使用C++写一个线程安全的单例模式,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
2022-11-13

编程热搜

目录