Redis 单线程模型分析

Java 2016-08-22 16:41:21 1927

Redis  采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。

题外话,服务端编程的3大性能杀手:

1、大量线程导致的线程切换开销。

2、各种锁。

3、非必要的内存拷贝。

不过,因为一般的内存操作都是简单存取操作,线程占用时间相对较短,主要问题在io上,因此, redis  这种模型是合适的,但是如果某一个线程出现问题导致线程占用很长时间,那么 reids  单线程  模型效率可想而知。

总体来说快速的原因如下:

  • 绝大部分请求是纯粹的内存操作(非常快速)
  • 采用单线程,避免了不必要的上下文切换和竞争条件
  • 非阻塞IO

内部实现采用epoll ,采用了epoll  + 自己实现的简单的事件框架。epoll 中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在 IO 上浪费一点时间 。

这3个条件不是相互独立的,特别是第一条,如果请求都是耗时的,采用单线程吞吐量及性能可想而知了。应该说redis 为特殊的场景选择了合适的技术方案。

关于线程安全问题

redis实际上是采用了线程封闭的观念,把任务封闭在一个线程,自然避免了线程安全问题,不过对于需要依赖多个 redis 操作的复合操作来说,依然需要锁,而且有可能是分布式锁。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/107.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。本人发布一些简单的资料和Demo!
相关文章
Redis 单线程模型分析
关于微信weixin.com,价值3000万域名腾讯仲裁“0元”得手实际分析
JSOUP 教程,JSOUP爬虫教程,JSOUP超时分析与处理
Java Redis线程池ShardedJedisPool 使用方法,Java Jedis连接池的使用
Java获取浏览器请求头(User-Agent),分析浏览器信息,系统信息的几种办法。
Redis的理解,Redis是什么,Redis和Memcache谁快?
多说迁移,Java开发仿自主实现评论(一)
Shiro教程(五)Shiro + Redis实现
Java 解JSON,JSON-LIB jar包下载和使用。
json 解与生成工具类 ,JSON操作讲解(附件)
最新文章
Macbook teamviewer 突破5分钟,苹果电脑重置 Mac 地址,100%解决限制 220
腾讯云代金券 10000 元/ 30000 代金券领取技巧 324
SEO 换友情链接的主意事项,友情链接断链、友情链接套路说明 229
Springboot + Mybatis,数据库多数据源配置项目Demo【源码下载】 1903
Mac mtr 安装并使用,mrt: command not found 299
Java 集成阿里云消息队列,日志消息存储 497
域名备案注意事项,网站域名ICP备案快速通过攻略【干货分享】 472
Springboot 集成Aliyun MQ消息队列,Aliyun 消息队列配置及代码实现 837
SpringBoot 集成Spring-data-redis,redis对象序列化存储 2029
天气API,全国天气 JSON API接口,可以获取十五天的天气预报 604
最热文章
Elasticsearch教程(四) elasticsearch head 插件安装和使用 126781
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 108004
Elasticsearch教程(六) elasticsearch Client创建 78810
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 74434
Elasticsearch教程(二),IK分词器安装 73217
Elasticsearch教程(一),全程直播(小白级别) 65782
Elasticsearch教程(五) elasticsearch Mapping的创建 61877
Elasticsearch教程(三),IK分词器安装 (极速版) 56361
Elasticsearch教程(七) elasticsearch Insert 插入数据(Java) 53539
Java 解析JSON,JSON-LIB jar包下载和使用。 48973
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

正在加载... ...