Altering queries?
K J
sanbat at gmail.com
Fri Sep 21 08:12:22 UTC 2007
>
> Only you could answer that definitively, but I would guess that it would
> be better to get the lot. Depends how often your data changes.
>
> On my site, people see the first 15 entries, but I put the first 100 in
> one cache key, and the first 500 in a second cache key if needed. I get the
> first 15 out of the hundred, and if they want more, I iterate though it
> until I need more than 100. On the rare occassion that anyone gets past the
> 500 mark I just go straight to the database, and then add back to the
> cache.
>
> I've split it up into 100 and 500 because most people would only ever look
> at less than the first 100 entries. if they do manage to look past the
> first 100, then I have the first 500 cached in another key. Keep in mind,
> this is not first 100 next 500 to make a total of 600 articles. The first
> 100 are also duplicated in the 500 list. The 500 entry list is generated
> only the first time it is needed, and the exact same routine also creates
> the 1000 entry key if that is ever needed, and so on. There is no built in
> limit, it could end up being a key for a 20000 entry list fall all I know.
>
> Every situation is different. I suggest you build some test cases and
> test it under various situations and see what works for you. There are some
> parts of my site that dont use memcache at all and simply go to the database
> directly every time, but I did it that way because for that particular
> problem a cached solution would be clunky, and memcache just didnt fit
> well. But apart from those special cases, I cache almost everything. I
> cache the little bits of data (such as key for each IP address that hits the
> site, I increment a counter each time they hit, and give it an expiry), all
> the small elements of data, all the bigger elements made up of the smaller
> elements, all the rendered XML and some of the rendered HTML. My database
> is mostly idle :)
I'm wondering about the 100, then the 500. Are you creating a new array at
certain intervals? For instance suppose a user keeps paging through the
results and end up at result 800. Would you then have 3 arrays like this?
- 100 array
- 500 array
- 1000 array
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/memcached/attachments/20070921/feb265af/attachment.html
More information about the memcached
mailing list