Last time, I had a chance joining to a Django project. Django is a web framework written by Python. Though I've invested sometime before to study Django and been amazing with it, I haven't really done anything on Django yet. So that's a good opportunity for me to increase my Django knowledge. One of my tasks at start was to study caching supports in Django. Compare to what I knew with Ruby on Rails, I found that caching in Django is very strong and especially well-organized. So, it would be useful to put some summarizations down here.
- General rule
given a URL, try finding that page in the cache
if the page is in the cache:
return the cached page
else:
generate the page
save the generated page in the cache (for next time)
return the generated page
- More specific
- Advantages and disadvantages of caching backends
Advantages Disadvantages Memcached
- the fastest, most efficient type of cache available to Django
- all cached data is stored directly in memory, so there’s no overhead of database or filesystem usage
- cached data can be shared over multiple machines, so it’s excellent for scaling
- being used by Facebook, Wikipedia,...
- cached data is stored in memory, so it will be lost if server crashes (but it’s not critical because cached data is just temporary)
- need to have memcached daemon along the wayIn-database cached
- cached data is persistent
- could use multiple databases for caching
- setup & manage multiple caching databases would be toughFilesystem cached
- cached data is persistent
- simple to setup
- may not scale wellLocal-memory cached
- simple
- not nescessary to have runing an external cache server as memcached
- no cross-process caching means it’s not particularly memory-efficient
- probably not a good choice for production, just nice for development
- Reference
http://docs.djangoproject.com/en/1.2/topics/cache/
1 comment:
Do you need free Twitter Followers?
Did you know you can get them ON AUTO-PILOT AND ABSOLUTELY FREE by registering on Like 4 Like?
Post a Comment