Redis 为什么快?
1.纯内存KV操作
Redis 的操作都是基于内存的,CPU不是 Redis性能瓶颈,,Redis的瓶颈是机器内存和网
络带宽。
在计算机的世界中,CPU的速度是远大于内存的速度的,同时内存的速度也是远大于硬
盘的速度。redis的操作都是基于内存的,绝大部分请求是纯粹的内存操作,非常迅速。
2.单线程操作
使用单线程可以省去多线程时CPU上下文会切换的时间,也不用去考虑各种锁的问题,
不存在加锁释放锁操作,没有死锁问题导致的性能消耗。对于内存系统来说,多次读写都是
在一个CPU上,没有上下文切换效率就是最高的!既然单线程容易实现,而且 CPU 不会成
为瓶颈,那就顺理成章的采用单线程的方案了
Redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其
他模块该使用多线程,仍会使用了多个线程。
3.I/O 多路复用
为什么 Redis 中要使用 I/O 多路复用这种技术呢?
首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写
操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往往不能直接返回,这
会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是
为了解决这个问题而出现的
4.Reactor 设计模式
Redis基于Reactor模式开发了自己的网络事件处理器,称之为文件事件处理器(FileEvent
Hanlder)。
Redis 合适的应用场景?
1、会话缓存(Ses