Got some good answers over here in case anyone is interested: http://stackoverflow.com/questions/1034910/best-way-to-combine-fragment-and-object-caching-for-memcached-and-rails
On Jun 23, 5:11 pm, Brian Armstrong <[email protected]> wrote: > Lets say you have a fragment of the page which displays the most > recent posts, and you expire it in 30 minutes. Btw, I'm using rails > here. > > <% cache("recent_posts", :expires_in => 30.minutes) do %> > ... > <% end %> > > Obviously you don't need to do the database lookup to get the most > recent posts if the fragment exists, so you should be able to avoid > that overhead too. > > What I'm doing now is something like this which seems to work: > > unless Rails.cache.exist? "views/recent_posts" > @posts = Post.find(:all, :limit=>20, :order=>"updated_at DESC") > end > > Is this the best way? Is it safe? > > One thing I don't understand is why the key is "recent_posts" for the > fragment and "views/recent_posts" when checking later, but I came up > with this after watching memcached -vv to see what it was using. > Also, I don't like the duplication of manually entering > "recent_posts", it would be better to keep that in one place.
