您的位置:首页 > 数据库 > Memcache

MemCached定义、安装、配置和小例子

2016-07-17 23:10 645 查看
MemCached是什么

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. (http://memcached.org/)

MemCached从字面上看就是在Memerory中进行Cache,即把经常需要从数据库取出的数据缓存到内存中。

为什么用MemCached

在高并发的情况下,数据库很可能会无法满足访问需求而成为系统瓶颈,此时对于那些变化不那么快、实时性不高的信息就没必要从数据库中读取,可以直接读取服务器内存。

Ubuntu下如何使用MemCached

3.1 安装memcached

3.1.1 从源码

wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure && make && make test && sudo make install


3.1.2 从Ubuntu源

sudo apt-get install memcached


3.1.3 检查安装是否成功

ps aux | grep memcached


执行结果:



3.2 安装php的MemCached插件

sudo apt-get install php5-memcached


根据PHP官方文档(http://php.net/manual/en/intro.memcached.php):

This extension uses the libmemcached library to provide an API for communicating with memcached servers. It also provides a session handler (memcached).

PHP插件仅是libmemcached库的PHP接口,依赖于libmemcached库(安装PHP插件时自动被安装),而根据libmemcached库官网的信息:



可知libmemcached库也只不过是使用3.1安装的memcache的API库。

3.3 重启Apache以使安装的php插件生效

sudo service apache2 restart


3.4 配置MemCached

由于memcached默认是监听本地回环地址:127.0.0.1,而如果不是在服务器本机上测试,则客户端虽然向memcache服务器发送了请求,memcached由于没有监听是不会回复的。服务器应该监听的是其可被客户机访问的实际IP地址(客户端浏览器访问的IP地址)。



因此修改/etc/memcached.conf文件使其监听客户能访问的服务器地址,如:



配置后重启MemCached

sudo service memcached restart


3.5 测试MemCached

编写客户端程序:

<?php
$memcache = new Memcached;
$memcache->addServer('192.168.109.129',11211);
$key = 'weather';
if(($value = $memcache->get($key))!=FALSE)
{
echo "Value of $key is ".$value.', Now is: '.date('Y-m-d H:m:s');
}
else
{
echo 'No value found by memcache, write it to memcache!<br/>';
$value = 'Sunny';
$result = $memcache->set($key,$value,10);
if($result == TRUE)
{
echo 'Stored!<br/>';
echo 'Now is: '.date('Y-m-d H:m:s');
}
else
{
echo 'Failed to store with error code:'.$memcache->getResultCode().'!';
}
}
?>


结果:

刚开始,由于被访问的网页检测到key是weather的数据没有在memcache中,则从数据库查询到信息后(测试代码省略数据库查询过程)放入memcache:



再次访问时页面发现memcache中有key是weather的值,则直接从memcache中读取并返回不再查询数据库。



等待到memcache中设置的key是weather的数据失效后再次访问,则可以看到数据被删除了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: