So far, there are two excellent performance enhancing caching solutions available for WordPress, WP-Cache and WP-SuperCache. Both do an awesome job of caching posts/pages to help keep your website from falling off the map in the middle of a Digg effect. Now, there is a new entrant in the caching arena called Batcache which was created by Andy Skelton.
This plugin is meant to be used in situations where file-based caching is either not practical, or is not desired. According to Andy, development testing showed a 40x reduction in the time it took to generate pages. Pages that were generated in 200ms ended up being served from the cache in only 5ms.
Batcache uses Memcached to store and serve rendered pages. It’s not as fast as Donncha’s WP-Super-Cache but it can be used where file-based caching is not practical or not desired.
The basic premise of the plugin works similar to the other caching plugins that are available:
Batcache is aimed at preventing a flood of traffic from breaking your site. It does this by serving old pages to new users. This reduces the demand on the web server CPU and the database. It also means some people may see a page that is a few minutes old. However this only applies to people who have not interacted with your web site before. Once they have logged in or left a comment they will always get fresh pages.
Andy has also noted that the following features could be implemented in future versions of the plugin:
- Comments, edits, and new posts will trigger cache regeneration
- Online installation assistance
- Configuration page
- Stats
So if WP-Cache or WP-SuperCache is not helping your situation, give Batcache a try and please, let us know how it works for you in the comments.
sounds very interesting, but how could you tell how fast your page is loading for a new user? if anyone knows
thanks to batcache,
i have been waiting for morethan a month for a new plugin for cache, as wpcache and super cache not working for me.
and yesterday iam one of the very first people who downloaded and using batcache, iam really thankful to him.
I am already using this plugin in production and I am quite confident it works fine where you cannot use wp-supercache (because it requires apache+mod_rewrite) or you do not want to use it for the increased i/o overhead.
Presenting the plugin you are anyway forgetting to report the most important thing about it: it’s “memcache” based. So this does not apply to 99% of wordpress self-hosted users, who are using a shared hosted environment or a low-end vps, and therefore cannot setup a memcached daemon to run bat-cache.
Thanks for the recommendation, Jeff; but in addition, thanks to Gianluca for the information about memcache. Alas I belong to that category of users! Am still deciding on which to use out of Cache and Supercache since the former seems to have stopped working on me and I’m a little worried about jumping to the latter.
FYI: If you are testing on your own blog, there is a massive chance that either you are logged on OR have left a comment on that blog, which will force batcache to serve live pages to your browser and you will not see the debug information before the <\head> as mentioned in the install. To get around this and test your install, you will have to comment out the part of the code that checks for cookie and comments in advanced-cache.php (lines 59-62).
well If you want to know about these caching systems, this is what i can say. from the time i started blogging i was much interested in caching coz its a superb concept. I have tried wp-cache and it simply wrecks havoc in the blog, I really hate it. Supercache on the other hand is soooo wonderful and a superb companion. but if you have super-cache eneabled using apache mod re-write there will be some issues like, for example you can’t leech protect your images using htaccess. so I have the super-cache plugin in half-on status and it works like a charm. Its one of the most important plugins for me. (I believe that I’m right in saying, this should be built into WP in future editions coz caching is a basic need for high traffic blogs like mine).
Another reason you might want this is security. After I got hacked I had a hell of a time securing the cache directory so that it would still be writable by the server for caching but not by the hackers to run their evil scripts. Having tight permissions (chmod) on the cache directory stops all the options for wp-cache and wp-supercache from working, so I can’t flush the cache or edit the settings except by maually editing the wp-cache-config.php file, which is a real bitch (I hate telling users “wait 10 minutes and you’ll see your change”). Haven’t tried the plugin yet though.
Also, if people want to test the caching they can also just log in with a different browser (IE, FF, Flock, Opera) that doesn’t have a cookie for the site, way easier than editing a source file!
Batcache works fine, we use it on WordPress.com to serve 40-50 million
pageviews/day. For a single server setup, however, wp-super-cache is
probably better. Batcache’s real use is in a multi web-server
environment since it doesn’t write to the filesystem there are no sync
issues, etc.