<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: michael-koziarski</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/michael-koziarski.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2007-07-05T00:56:33+00:00</updated><author><name>Simon Willison</name></author><entry><title>Clever Caching</title><link href="https://simonwillison.net/2007/Jul/5/caching/#atom-tag" rel="alternate"/><published>2007-07-05T00:56:33+00:00</published><updated>2007-07-05T00:56:33+00:00</updated><id>https://simonwillison.net/2007/Jul/5/caching/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.koziarski.net/archives/2007/5/28/clever-caching"&gt;Clever Caching&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Instead of invalidating your cache directly, bump a version number on your model (blog entry or whatever) and use that as part of the cache key. This also gives you dynamic etags for free.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/etags"&gt;etags&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memcache"&gt;memcache&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/michael-koziarski"&gt;michael-koziarski&lt;/a&gt;&lt;/p&gt;



</summary><category term="caching"/><category term="etags"/><category term="memcache"/><category term="michael-koziarski"/></entry></feed>