1.
基于C/S架构,使用简单的基于文本行的协议
2.基于libevent的事件处理
libevent是一套跨平台的事件处理接口的封装,能够兼容很多系统的时间处理
Memcached使用libevent来
进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力
3.内置内存存储方式
为了提高性能,memcached中保存的数据都存储在memcached内置的
内存存储空间中。由于数据仅存在内存中,因此重启memcached,重启操作系统会导致
全部数据消失。
内容容量达到指定值后,就基于LRU算法
自动删除不使用的缓存。memcached本身是
为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题
4.基于客户端的分布式
memcached尽管是分布式缓存服务器,但服务器端并没有分布式功能。各个memcahced
不会互相通信以共享信息。
这样只能取决于客户端的实现。
客户端有个连接池,只要将memcaced服务器地址加入到该连接池中即可
SockIOPool pool = SockIOPool.getInstance();
String[] servers = {"127.0.0.1:11211"};
// 设置服务器信息
pool.setServers(servers);
这样memcached数据不是同步的,是分布的,即使在同一台服务器中开启多个memcached服务,也不会增加开销