一、作用
小知识:缓存一般用来保存一些经常存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来),通过缓存来存取对象或数据要比磁盘存取快很多。
memcache通过缓存经常被存取的对象或数据,来减轻数据库的压力,提高网站的响应速度,构建速度更快的可扩展的web应用。
举例:memcache和数据库协作的流程:
1、检查客户端请求的数据是否在memcache中存在,如果存在,直接把请求的数据返回,不再对数据进行任何操作。
2、如果请求的数据不在memcache中,就去查询数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcache中。
3、每次更新数据库的同时更新memcache中的数据,保证memcache中的数据和数据库中的一致。
二、工作原理
memcached是一种C/S模式,在服务器端启动服务守护进程,此时可以指定监听的IP地址、端口以及使用多少内存来处理客户端的请求等几个关键参数。
需要被缓存的对象或数据以key/value对的形式保存在服务器端,每个被缓存的对象或数据都有唯一的标识符key,存取操作通过这个key进行。
由于没有对这些对象进行持久性存储,因此在服务器端的服务重启之后存储在内存中的这些数据就会消失,而且当存储的容量达到启动时设定的值时,就自动使用LRU算法删除相应的缓冲。memcached利用slab allocation机制来分配和管理内存。
三、安装调试
安装调试详见:
“安装配置”文件夹下的“memcache安装配置”;
四、管理与性能监控
1、通过memcached的监听端口进行管理
通过命令行登录到memcached的监听端口,然后执行一些命令,通过这些命令的输入即可查看memcached的运行状态。
2、利用memcached-tool管理memcached
memcached-tool是利用perl编写的一个memcached管理脚本。这个脚本通过将之前的命令行进行封装,使输入的值更加规则,进而便于分析查看。
3、监控
部署好memcached之后,需要对memcached的使用情况进行跟踪:监控memcached的状态信息、内存使用情况、hit/miss的值。通过对memcached的监控不仅能立刻了解memcached出现的问题,还能够利用状态信息分析业务数据的增长并为未来的容量规划提供依据。
常用的监控工具有:memcache.php、nagios和cacti。