WordPress 启用 Memcached 内存缓存

Memcached 是什么?

Memcached 是一种高性能的分布式内存对象缓存系统。在动态应用,Memcached 既能提高访问的速度,同时还减低了数据库的负载。

Danga Interactive 为提升 LiveJournal.com 的速度研发了 Memcached。目前,LiveJournal.com 每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由 Web 服务器和数据库服务器组成的集群完成的。Memcached 几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及 Memcache 失效时对数据库的访问速度。

WordPress 和 Memcache

由于 WordPress 默认支持 Object Cache, 所以在 WordPress 实现 Memcached 就是使用 Memcached 把 WordPress 的 Object Cache 写到内存中去,下次直接从内存中读取。相比直接从数据库去读取数据,或者从 Object Cache 数据存到文件,然后从硬盘中读取,Memcached 有很大的速度优势。

Memcached 命中率

Memcached 命中率

上图是我爱水煮鱼使用 Memcached 之后的缓存对象的命中率,可以看出命中率是非常高,接近 97%,基本上可以保证所有数据都是从能内存中取,所以使用 Memcached 进行缓存是非常有效的。

WordPress 如何启用 Memcached 缓存

1. 需要你的服务器支持,就是你的 PHP 需要安装上 Memcached 扩展。你可以通过 phpinfo() 这个 PHP 函数来检测。

2. 下载 WordPress Memcached 插件:http://wordpress.org/extend/plugins/memcached/

3. 把下载的:object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/

4. WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。

(via:http://blog.wpjam.com/m/wordpress-memcached/)

Join the Conversation

6 Comments

  1. darrell说道:

    还能用Memcache呢啊?以前项目用过这个分布式内存缓存。另外,徐大,邮件我发了那么多邮件怎么一个都没回啊,我上次买了之后定制的内容还不能改吗? 🙁

    1. Xu.hel说道:

      Memcache 需要主机支持的。

  2. francis说道:

    说实话,还是没理解WP本身的缓存啊。

    PHP无论CGI运行,还是SAPI模式,都是thread safe的,每次请求都是相对独立的,怎么会超越请求来实现内存中的缓存呢……

    1. Xu.hel说道:

      只要你能够理解变量是保存在内存里面的就行了。

  3. o2cpwang319说道:

    我使用可memcached以后确实不错. 在写wp主题的时候也尽量能用 wp_cache_get 和 wp_cache_set 这两个函数 但是我有一个问题. 因为我看wp源代码里没有在这两个函数传入时间. 那么 wp缓存的这些对象 默认是缓存多久过期呢? 可不可以更改wp cache 的缓存时间? 总感觉应该有一个全局变量来设置才对啊..

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注