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 从源码
3.1.2 从Ubuntu源
3.1.3 检查安装是否成功
执行结果:
3.2 安装php的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插件生效
3.4 配置MemCached
由于memcached默认是监听本地回环地址:127.0.0.1,而如果不是在服务器本机上测试,则客户端虽然向memcache服务器发送了请求,memcached由于没有监听是不会回复的。服务器应该监听的是其可被客户机访问的实际IP地址(客户端浏览器访问的IP地址)。
因此修改/etc/memcached.conf文件使其监听客户能访问的服务器地址,如:
配置后重启MemCached
3.5 测试MemCached
编写客户端程序:
结果:
刚开始,由于被访问的网页检测到key是weather的数据没有在memcache中,则从数据库查询到信息后(测试代码省略数据库查询过程)放入memcache:
再次访问时页面发现memcache中有key是weather的值,则直接从memcache中读取并返回不再查询数据库。
等待到memcache中设置的key是weather的数据失效后再次访问,则可以看到数据被删除了。
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的数据失效后再次访问,则可以看到数据被删除了。
相关文章推荐
- linux上yum安装memcache
- memcached总结文档
- MenberCache学习总结
- mongoldb,redis,memCached的缓存策略
- Linux 安装 memcache
- python 安装 memcache
- 【荐】PHP Session和Cookie,Session阻塞,Session垃圾回收,Redis共享Session,不推荐Memcached保存Session
- wamp环境下安装Memcached服务器端软件和PHP的Memcache扩展
- 利用magent搭建memcached集群
- Memcache的mutex设计模式 -- 高并发解决方案
- Nginx+Tomcat+Memcached集群Session共享
- windows环境下如何安装memcached教程
- php模块memcache和memcached区别分析
- Redis与Memcache区别
- CentOS6.3编译安装Memcached集群分布式缓存代理Magent-0.6出错汇总
- linux(centos7)的memcache
- Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解
- Memcached FAQ(2) 集群架构方面的问题
- 搭建 Windows Server 2003 + IIS6.0 + FastCGI + PHP5.3.29 + MySQL5.5.38 + Memcached1.2.6
- memcached预设值常量以及resultmessage翻译