赞
踩
对于用户空间,实质就是操作系统上安装的软件。我们通过操作这些软件通过操作系统(也就是内核空间)来操作硬件。
当要进行写操作和读操作,实质就是在用户空间和内核空间各自的缓冲区数据的来回转换。
redis单线程 监听多个FD(文件描述符,也可以称为请求),当有FD可写可读时,就去执行文件,这样就避免了cpu过多的无效等待(实质是处理当前请求时阻塞,后续的请求也会阻塞。因为单线程处理)
缺点:需要去遍历监听的FD,因为无法确定哪个FD可读可写。监听的数量有限,最多1024。
缺点:需要去遍历监听的FD,因为无法确定哪个FD可读可写,监听无上限(监听较多会影响效率,性能降低)。
该模式用 红黑树记录所有的监听FD,用链表记录 已经在红黑树中就绪的FD并返回,这样就可以不用让用户空间去遍历所有的FD。还可以减少重复的拷贝FD。
redis是一个纯内存操作,如果是多线程只会改变程序执行的速度,而对于内存的操作影响的原因是网络的延迟。并且多线程会有线程上下文的切换,也会带来不必要的开销。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。