1.MemCache的介绍
(1)什么是memcache?
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
(2)工作原理:
先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
2.Php页面增加memcache缓存模块
php增加memcache模块
将php的bin目录路径添加到~./bash_profile中,为了方便调用
1)memcache模块目录中没用configure文件,所以没有办法编译
解释phpize的作用:
memcache目录中本来没有configure文件,所以没法编译。phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。或者说,phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下,会生成configure文件。
memcache编译安装
php中增加缓存模块,并重新加载
安装服务端的主程序,开启11211端口
图表页面和测试页面发到Nginx的默认目录下
编辑图表页面,可以修改用户名和密码
访问默认发布页面index.php和example.php,对比访问时间,验证是否进行了缓存
测试
沒有用memcache
用了memcache缓存后,测试:
速度很快,而且沒有失败的请求。
查看命中率。全部命中缓存