后记:这篇短漫画主要想讲一下Redis的线程模型和Tomcat的线程模型的区别。Redis负责的业务主要是和内存打交道,每天就是读写内存的那些数据结构,像string ,hash, set, list等等,内存的速度是很快的。我们来假设一个场景, 有10万个请求发给了Redis, 假设10微秒处理一个,那这10万个请求,Redis一个线程1秒内就轻松搞定!
(1秒 = 1000毫秒 = 1000,000 微秒 = 1000,000,000纳秒)
Tomcat的线程就和Redis不同了,它需要读写文件,访问硬盘,访问网络,那速度是非常非常慢的, 如果同样是10万个请求发给Tomcat,假设平均处理时间是10毫秒,那就需要1000秒才能搞定,这实在是太慢了,人类是万万等不及的。所以Tomcat肯定要建立一个线程池,里边养一堆线程来干活了。并且,一个Tomcat在高并发的情况下还不够,需要多个Tomcat组成集群来分担压力,也是不得已而为之。
另外,Redis是非阻塞的I/O,使用了epoll作为I/O多路复用的实现,还有一个自己的事件处理模型,不会在网络I/O上浪费时间。
更多精彩技术漫画,尽在码农翻身
转载:https://blog.csdn.net/coderising/article/details/112255990
查看评论