<pedrocorreia.net ⁄>
 

<Simple way to memcache (almost) all database queries ⁄ >




clicks: 2191 2191 2010-01-10 2010-01-10 goto programacao myNews programacao  Bookmark This Bookmark This


Most common way to access data is a database. Most common way to speed this up - Memcached.
As a quite young CakePHP developer I had a bit of headache "how to cache queries effectively?". Now I know the way, so I share. Feel free to disagree, upgrade and so on.
Text from now on assumes you have Memcached configured as default caching engine.

The goal was to create simple and fast yet safe and universal caching for my models. Caching collections takes long time. Of course it allows to make much less calls to a model, but is that what we really want?

What my code does not do is saving memory. If you often ask your database about crossing sets of data, don't use it. Code below caches each find result, which is OK if those results does not overlap to much. If they do, you'll end with the same data in the memory many many times, as a part of different result sets.

I keep this code in app_model.php; that way setting cache to false in models allows me to use more specialized caching strategies where needed, and have this one wherever it is sufficient



este é só um excerto do artigo, para aceder ao artigo completo, clique no link em baixo:
this is just a small excerpt from the article, to access the full article please click in the link below:

http://bakery.cakephp.org/articles/view/simple-way-to-memcache-almost-...




Subscribe News RSS  Subscribe News Updates by E-mail





myNews <myNews show="rand" cat="programacao" ⁄>

RouterJs: easy routing for your ajax Web applications new ...

RouterJs is a simple router for your ajax web apps. It's build upon History.js which means that Rout (...)

clicks: 15360 15360 2012-05-14 2012-05-14 goto url (new window) haithembelhaj.g... goto myNews programacao


Backbone computed properties new ...

This gist shows one way to implement read- and write-enabled computed properties on a Backbone Model (...)

clicks: 15118 15118 2012-05-13 2012-05-13 goto url (new window) https://gist.gi... goto myNews programacao


Android Query new ...

Android-Query (AQuery) is a light-weight library for doing asynchronous tasks and manipulating UI el (...)

clicks: 15352 15352 2012-05-12 2012-05-12 goto url (new window) code.google.com... goto myNews programacao


HTML5 jQuery Paint Plugin new ...

Websanova Paint is a HTML5 canvas based jQuery plugin. It allows you to free paint on a canvas area (...)

clicks: 25791 25791 2012-05-12 2012-05-12 goto url (new window) websanova.com/t... goto myNews programacao


Create Instagram Filters With PHP new ...

In this tutorial, I'll demonstrate how to create vintage (just like Instagram does) photos with PHP (...)

clicks: 14807 14807 2012-05-12 2012-05-12 goto url (new window) net.tutsplus.co... goto myNews programacao


Real-time Applications With Node.js and Socket.IO new ...

Hey everyone! Sorry about the long pause since the last blog post, life has been quite hectic for th (...)

clicks: 15241 15241 2012-05-11 2012-05-11 goto url (new window) codingcookies.c... goto myNews programacao


Sass vs. LESS vs. Stylus: Preprocessor Shootout new ...

CSS3 preprocessors are languages written for the sole purpose of adding cool, inventive features to (...)

clicks: 14565 14565 2012-05-11 2012-05-11 goto url (new window) net.tutsplus.co... goto myNews programacao


15 Handpicked jQuery Drop Down Menus Tutorials new ...

Here we are presenting another brilliant collection of 15 jQuery navigation menu that you can downlo (...)

clicks: 14381 14381 2012-05-10 2012-05-10 goto url (new window) smashingapps.co... goto myNews programacao