[development] Proper way to cache data

Robert Douglass rob at robshouse.net
Fri May 18 21:21:29 UTC 2007

William Smith wrote:
> The cid value doesn't matter -- you make your own (any string).  
> You'll want to make it something that you can easily recreate when it 
> comes time to cache_get the stored data.  So your cid could be 
> something like "foo_" . $node->nid or whatever.  I usually create a 
> table if I'm going to be caching a lot of entries.
It doesn't matter which cid as long as you take reasonable efforts to 
make sure that it will never collide with any other cid (if you're 
putting it in the cache table and not your own cache_foo table). Using a 
strategy like foo::id is probably fine.

As for clearing the data, you decide when it is no longer relevant and 
then call cache_clear_all with the cid you want to clear.

In Drupal 5 you should serialize and unserialize complex data structures 
when calling cache_get and cache_set. In Drupal 6 these structures will 
be recognized automatically and the un/serialization is handled by the 
cache API.


More information about the development mailing list