天天看点

memcache分布式的高速缓存

**

memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著

**

MemCache的工作流程如下:

先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

Memcache 是 danga.com 的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在

内存里维护一个统一的巨大的 Hash 表,能够用来存储各种格式的数据。可以类比于 MySQL 这样的服

务,而 PHP 扩展的 Memcache 实际上是连接 Memcache 的方式。

实验说明:

vim ~/.bash_profile     #添加环境变量
	PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin/
source ~/.bash_profile   #刷新更改,使生效
这里我找的资源包是:memcache-2.2.5.tgz
tar zxf memcache-2.2.5.tgz
cd memcache-2-2-5
phpize
在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。
./configure   #编译检测
make && make install    #编译
vim /usr/loacl/lnmp/php/etc/php.ini
	or under UNIX:
	extension=memcache.so     #扩展缓存模块
/etc/init.d/php-fpm reload    #重新加载php
php -m | grep memcache    #查看是否扩展出该模块
php -m | grep mysql       #查看是否包含mysql模块
yum install -y memcached   #High Performance, Distributed Memory Object Cache(官方注释)
rpm -qa | grep memcache  #查看版本
rpm -ql memcached-1..4-3.el6.x86_64   #安装的各个文件
vim /etc/sysconfig/memcached   #环境配置文件
	不需要修改:可以把option改为"-l 127.0.0.1",只监听本机的11211端口
/etc/init.d/memcached restart   #改了就要重启,下面的操作前需将其改回原本的默认
yum install -y telnet   #这里我们用telnet工具,相当于存储器。

telnet localhost 11211  #可以添加缓存,使用11211端口,
	set name 0 0 6  #写入缓存,name相当于变量名【006分别为:key值【顺序】,存在时间【秒】,字符长度】
	get  name   #获得name值
	delete name   #删除缓存
#相当于测试memcache是否可以添加缓存正常使用
           
memcache分布式的高速缓存
给nginx加存储:
openresty:基于nginx与lua的高性能web平台

cd memcache-2.2.5
cp memcache.php /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
vim memcache.php
	$MEMCACHE_SERVERS[] = '172.25.14.5:11211'; // add more as an array  #将另一个注释掉  连接本机的11211端口
页面访问172.25.14.5/memcache.php  是一个memcache的网页图形化统计工具。可以统计访问时命中缓存的状况
           
memcache分布式的高速缓存
memcache分布式的高速缓存
memcache分布式的高速缓存

该工具可以查看访问命中缓存的情况

cd ~/memcache-2.2.5
cp example.php /usr/local/lnmp/nginx/html/   
真机测试:ab -c 10 -n 5000 http://172.25.14.5/index.php  #10并发访问5000次该IP的该共享页面
真机测试:ab -c 10 -n 5000 http://172.25.14.5/example.php
#在example.php文件中有指定访问时,会从memcache中直接读取,即读缓存,所以ab 5000次example的速度会远远快于index.php
           
memcache分布式的高速缓存
大大的小小阳
           

继续阅读