0 人感兴趣 · 8 次引用
Redis一直以来都是高性能分布式缓存中间件的代表,我们经常说Redis是单线程的,也有人说Redis在6.0版本采用了多线程,那么Redis到底是采用单线程呢?还是多线程?本文我们来一探究竟。
前言 作为内存中数据存储,Redis 以其速度和性能着称,通常被用作大多数后端服务的缓存解决方案。 但是,在内部,Redis 采用单线程架构。 为什么单线程设计依然会有这么高的性能?如果利用多线程并发处理请求不是更好吗?
redis6.0引入多线程IO,只是用来处理网络数据的读写和协议的解析,而执行命令依旧是单线程,所以不需要去考虑set/get、事务、lua等的并发问题。(详细的线程模型见后面)
我们将先从Redis、Nginx+Lua等技术点出发,了解缓存应用的场景。通过使用缓存相关技术,解决高并发的业务场景案例,来深入理解一套成熟的企业级缓存架构是如何设计的。
redis单线程是指logic在单线程中执行。
Redis的高并发和快简单可以归结为一下几点:
作者Antirez在RC1版本发布时在他的博客写下:
网路io底层epoll,单线程redi,多线程memcached,多进程Nginx
让技术不再枯燥,让每一位技术人爱上技术
人生享受编程,编程造就人生!
大丈夫生于天地之间,岂能郁郁久居人之下
靠敲代码在北京买房的程序员
百度官方技术账号