Memcached简介
Memcached是一款开源、高性能、分布式的内存对象缓存系统,目的是通过缓解数据库负载来提高动态web应用的响应速度。Memcached是将来自于数据库调用、API调用、页面翻页需要呈现的任意(字符串、对象)数据以键值对的形式,存放在内存中。Memcached非常小巧却也非常强大,它的简单设计促进了快速部署、易于开发,解决了面对大量数据缓存的很多问题。Memcached对于多种流行编程语言均是可以使用的。
Memcached允许你从系统中获取相对于你需要的更多的内存,可以使你更好的使用内存。下图中,上面的方框中每个node节点是完全独立的,这个场景是典型的部署策略,你可以发现总缓存大小只是实际容量大小的一小部分,而且在保持跨node节点缓存内容一致性问题上,需要花费时间和工作量。下图中,下面的方框中每个node节点可以使用来自其它node节点的内存,所有服务器都在使用同一个虚拟的内存池,这就意味着一条给定的数据总是在你整个web集群中同一个位置存储和检索。
此外,一方面为了满足你的应用业务不断增长的需求,会需要更多的服务器,另外一方面有规律地访问数据的情况也会相应的增长。系统规模在上述两个方面的扩张,部署策略考虑使用Memcached会很有意义。
上述的例子中仅仅简单说明了2台服务器的情况,随着部署的服务器数量的增多,如果有50台web服务器,在上图中第一个方框的情况中,可用缓存大小仍然为64M,而若使用上图中第二个方框的情况,则你可以使用的缓存为3.2G。
当然,不需要使用Web服务器的内存进行缓存。许多Memcached用户都有专门的机器,这些机器只被用作Memcached服务器,组成一个Memcached集群,作为一个整体对web应用提供缓存服务。
许多Web应用都将数据保存到RDBMS中,RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
Memcached 的守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。
Memcached下载
https://memcached.org/downloads