Memcached 是一个非常优秀的缓存加速系统,和 Squid
的前端缓存加速不同,它是通过基于内存缓存对象来减少数据库查询的方式改善网站系统的反应,而其中最吸引人的一个特性就是支持分布式部署;也就是说可以在
一群机器上建立一堆 Memcached
服务,每个服务可以根据具体服务器的硬件配置使用不同大小的内存块,这样一来,理论上可以建立一个无限巨大的基于内存的 cache storage
系统。
Php 下的 Memcached 官方 API 是 memcache 这个包,前不久发布 2.0.0 stable 版本,关键的更新是增加了 addServer() 函数用于支持 Multiple servers with loadbalancing and failover,在 FreeBSD 下安装:
[root@trinity ~]# cd /usr/ports/databases/memcached/[root@trinity ~]# make install clean[root@trinity ~]# cd /usr/ports/databases/pecl-memcache[root@trinity ~]# make install clean
另外一个号称更快的 API 包是 mcache,看作者的说明,是直接使用了 libmemcache,但在 FreeBSD 下目前还没有 Ports,需要源代码方式安装,具体可以参考 mcache 的说明。
一个简单的 PHP 脚本示例:
<?php$memcache = new Memcache;$memcache->addServer('localhost', 11211);$memcache->addServer('localhost', 11212);if ($memcache) { $count = intval($memcache->get('static_count')); $count ++; $memcache->set('static_count', $count, 0, 30); var_dump($memcache->get('static_count'));} else { echo "Connection to memcached failed";}?>
但不管 Memcached 是一个多么优秀的东西,在没有合理的缓存策略(缓存什么东西?如何缓存?缓存时机?过期策略?)的情况下,只会被滥用,发挥不了真正的作用。构思中…... |