Memcache与Memcached介绍及安装配置

也许大家一看到Memcache和Memcached会有点晕,这两者有什么关系又有什么区别呢,下面先给大家说下Memcached,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。 

想必大家也听说过Memcached,就是一个缓存系统,我们可以把一些经常要查询的数据放到缓存中,避免每次要使用的时候都去查询数据库。这样既能大幅的加快数据读取速度,而且也降低了服务器的压力,所以一般大访问量的网站都会用的Memcached。 

Memcached与Memcache的区别

至于Memcached和Memcache的区别,其实很简单,一个是服务端,一个是客户端,就像mysql一样,我们在命令行里输入各种sql语句就能查询到需要的结果,这就是客户端,客户端接收我们输入的命令从服务端查询,mysqld就是服务端,就是响应客户端的额后台进程,在这里也一样Memcached是服务端,而Memcache就是客户端。 

所以我们要使用Memcached,首先在服务端安装好Memcached,并运行Memcached,然后安装Memcache就能使用了。 

在这里我们会详细的讲解在Linux下安装Memcached服务端,并讲解通过PHP扩展安装Memcache,以便我们直接通过PHP来测试Memcached。 

Memcached的安装(Linux环境下)

由于Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,我们先把这两个软件都下载下来 
#1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# wget <a target=_blank href="http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz" target="_blank" style="color: rgb(51, 119, 170); text-decoration: none;">http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz</a> 
# wget <a target=_blank href="http://www.monkey.org/~provos/libevent-1.2.tar.gz" target="_blank" style="color: rgb(51, 119, 170); text-decoration: none;">http://www.monkey.org/~provos/libevent-1.2.tar.gz</a> 

#2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure --prefix=/usr
# make
# make install

#3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了。

#4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure --with-libevent=/usr
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,

#5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug


好了,以上就把memcached安装成功了 

下面安装Memcache的PHP扩展

1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。 
2.安装PHP的memcache扩展 
tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
make
make install


3.上述安装完后会有类似这样的提示: 
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/ 

4.把php.ini中的extension_dir = "./"修改为 
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/" 

5.添加一行来载入memcache扩展:extension=memcache.so 

6、修改未配置后重启PHP 

到这里我们已经把Memcache的服务端和客户端都安装好了,下面我们来通过PHP做一个简单地测试 

Memcache功能测试

首先我们得在服务端启动已经安装好的Memcached 
/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid 

参数说明: 
-d选项是启动一个守护进程, 
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, 
-u是运行Memcache的用户,我这里是root, 
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200, 
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, 
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, 
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid, 

然后编写PHP测试: 

  1. < ?php  
  2. $mem = new Memcache;  
  3. $mem->connect("127.0.0.1", 11211); //此处的IP和端口号就是上一步我们启动memcached指定的,否则会连接不上  
  4. $mem->set(‘key‘, ‘set a value‘, 0, 60);  
  5. $val = $mem->get(‘key‘);  
  6. echo $val;  
  7. ?>  


参考来源: 
Memcache学习总结1-Memcache与Memcached介绍及安装配置
http://www.lai18.com/content/407157.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。