Nowadays our web development life with FLOSS is getting more complex. Do you remember the nginx vs. lighttpd vs. apache? Now it is about cassandra vs. mongodb vs. couchdb, and memcached vs. redis vs. etc…..
Years ago it was just about choosing between the “best” DBMS for web, now MySQL is the most common option. But CMS and frameworks are getting bigger, vertical scaling is sometimes just a quick fix and the “I/O limit” is more common lo listen. So we see our architectural design growing more horizontally. When you choose a DBMS you have 90% of the answer, how to handle the other 10% is the difference between fast and slow response times. Oh! I almost forgot the database overhead/peak or whatever does network traffic another key topic in this complex non-ending history.
Let’s sort things out! your DBMS can still be SQL, there you store the precious user data and site content. Now, there is some data that is relevant only for a short period of time (hours), and other that is just needed for some minutes. If something have to stay hours or is archive only, let’s feed your curiosity with the eye candy NoSQL stuff, and let cache stay in a memory cache server, where you just need a key value so your SQL server is bothered only for writing and cache rebuild.
In short, the data was always there, it is just that we have not realized before how to handle cache, and use the best tool for the specific need. There is not a single-comfortable-answer anymore, in fact it was never been that comfortable, and be tunned to the trend because this emerging NoSQL is young and quickly changing, schedule now for the more often change of nowadays.
I have said “complex” at the beginning, so do your homework before asking ;)