原码分析

spymemcached源码深入分析

对着背影说爱祢 提交于 2019-12-09 10:29:25
spymemcached 深入分析 author :智深 version : 0.7 日志: http://my.oschina.net/astute QQ : 2548921609 ( 技术交流 ) 一、简介 spymemcached 是一个 memcache 的客户端, 使用 NIO 实现 。 分析 spymemcached 需要了解 NIO , memcached 使用, memcached 协议,参考资料中列出了有用的资源连接。 NIO 是 New I/O 的缩写, Java 里边大家一般称为异步 IO ,实际上对应 Linux 系统编程中的事件驱动 IO ( event-driven IO ),是对 epoll 的封装。其它的 IO 模型还包括同步,阻塞,非阻塞,多路复用( select , poll )。阻塞 / 非阻塞是 fd 的属性,同步会跟阻塞配合,这样的应用会一直 sleep ,直到 IO 完成被内核唤醒;同步非阻塞的话,第一次读取时,如果没有数据,应用线程会立刻返回,但是应用需要确定以什么样的策略进行后面的系统调用,如果是简单的 while 循环会导致 CPU 100% ,复杂的类似自旋的策略增加了应用编程的难度,因此同步非阻塞很少使用。多路复用是 Linux 早期的一个进程监控多个 fd 的方式,性能比较低,每次调用涉及 3 次循环遍历,具体分析见 http