Redis(缓存) 相关问题总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qsssyyw/article/details/81772813

1、Redis为什么是单线程

Redis是基于内存操作而CPU又不是Redis的瓶颈,Redis的瓶颈最有可能来自内存和网络带宽。单线程实现起来更简单,cpu又不是瓶颈,所以Redis是由单线程实现的。这里说的单线程,是指处理我们的网络请求的时候是只有一个线程,一个Redis server的运行肯定不只是一个线程,例如开启持久化的时候就是以一个子线程运行。官方FAQ(常见问题解答)中提到Redis4.0以后在某一些方面用到多线程操作。

2、如果万一CPU成为你的Redis瓶颈了,或者,你就是不想让服务器其他核闲置,那怎么办?

 开启多个Redis实例。

3、Redis可以处理高并发请求吗

当然可以,Redis采用队列模式将并发请求变为串行访问,采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求

4、Redis为什么快

基于内存的操作、单线程没有线程的上下文切换损耗,不用去考虑各种锁的问题、使用多路I/O复用模型,非阻塞IO、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的

横轴是连接数,纵轴是QPS(每秒查询数) 

5、单线程快还是多线程快

纯粹的比较多线程和单线程谁快是没有意义的,不同场景下两者各有优势。多线程是为了提高cpu的利用率,不让cpu在等待中白白浪费资源。

Redis参考资料:

https://blog.csdn.net/chenyao1994/article/details/79491337

https://blog.csdn.net/qqqqq1993qqqqq/article/details/77538202

https://mp.weixin.qq.com/s/gEU8HtsQNPXY8bzkK-Qllg

猜你喜欢

转载自blog.csdn.net/qsssyyw/article/details/81772813