日期:2014-05-16 浏览次数:20943 次
Memcache简单介绍:
Memcached 是一个自由和开放源码、高性能、分布的内存对象缓存系统。可用于加速动态web应用程序,减轻数据库的负载。通过在内存里维护一个统一的巨大的hash表,能够来存储各种格式的数据,包括图像、视频、文件以及数据库查询的结果等。
这里的memcache要跟php中的memcache区别开来,php中的memcache是php的支持扩展,而memcached是服务端主程序文件,服务端安装程序,如果要使用memcache来缓存系统,memcache和memcached都要安装。Memcache是一种内存缓存,把经常存取的数据或者对象,缓存在内存中,内存中缓存的这些数据是通过API的方式被存取的,数据就像是一个大的hash表,通过缓存常用的数据或者对象,以此来减轻数据库的压力,提高网站的响应速度。通俗的讲,客户端发出请求到达memcache,如果请求的数据存在memcache中,那么就直接将请求的数据返回,不再对数据进行任何操作。如果请求的数据不存在memcache中,那就去查询数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcache中。每次更新数据库的同时,更新memcache中的数据,保证memcache 中的数据与数据库中的数据一致。
memcache的简单原理示意图
-------------------------------------
安装配置
简单的介绍完了原理,开始安装配置,基础是lamp,这里就不介绍了
memcache 、memcached
[root@localhost softs]# wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
[root@localhost softs]# wget http://pecl.php.net/get/memcache-2.2.6.tgz
[root@localhost softs]# ls memcache* -l
-rw-r--r-- 1 root root 35957 Oct 4 2010 memcache-2.2.6.tgz ------------------memcache的php扩展
-rw-r--r-- 1 root root 320751 Feb 3 2012 memcached-1.4.13.tar.gz ----------------------memcache服务端软件
安装memcached
安装该软件时需要libevent的支持,为了防止软件版本太低,所以不建议yum安装
安装libevent
[root@localhost softs]# wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
[root@localhost softs]# tar xf libevent-2.0.21-stable.tar.gz -C /usr/src/
[root@localhost softs]# cd /usr/src/libevent-2.0.21-stable/
[root@localhost libevent-2.0.21-stable]# ./configure && make && make install
安装 memcached
[root@localhost softs]# tar xf memcached-1.4.13.tar.gz -C /usr/src/
[root@localhost softs]# cd /usr/src/memcached-1.4.13/
[root@localhost memcached-1.4.13]# ./configure --with-libevent=/usr/local && make && make install
[root@localhost run]# memcached -m 32m -p 11211 -d -u root -P /var/run/memcached.pid -c 256 ----------启动memcached进程
-p 使用的tcp端口,默认为11211;-m最大内存块,默认为64M;-d 作为守护进程在后台运行;-c最大运行的并发数,默认为1024;-P设置保存memcached的pid文件;
-u 表示运行memcached的用户,默认不能由root启动,所以当前用户为root时,必须要指定;-l 是监听服务器的地址,如果有多个地址的话。
[root@localhost memcached-1.4.13]# ps -e | grep mem
16499 ? 00:00:00 memcached
[root@localhost memcached-1.4.13]# netstat -tunlp | grep mem
tcp 0 0 0.0.0.0:11211 0.0.0.0:* &n