A Collection Of Redis Use Cases
paperplanes.de
paperplanes.de
This is worth highlighting. In Rails, for example, the integration for Redis is seven lines of code (they're in my last blog post), and then the Rails cache you know and love is suddenly magic. It requires no significant amount of developer resources to integrate, minimal sysadmin skills to get running, and coexists beautiful with whatever you use for data persistence right now. In all of these respects it is a lot like memcached. (Or like memcachedb except without the periodic disk flush that gives your users 5 second response times.)
Also, none of the root servers you can rent seem to have decent amounts of memory.
A/B testing is practically tailor made for a NoSQL solution: you're storing lots of disconnected bits about individual user/test pairs but never querying over a set of them. The load is potentially very write heavy, very spiky, etc -- these sort of things spell trouble for scaling relational databases. However, key/value stores just slurp them up and ask for more. (Additionally, "eventually ACID" works totally fine for this problem: if one of your Redis machines suddenly dies, you might lose a minute's worth of A/B test assignments for a fraction of your userbase. That's just rounding error on your tests, though, and moreover it is evenly distributed rounding error, so you can just handwave it away.)
This is why I went with key/value stores for A/Bingo. (Granted, my site only has about 20,000 writes a week for A/B tests so I could have gotten away with doing it in MySQL/ActiveRecord -- heck, I could probably have gotten away doing it with opening a new flat file for every user -- but some of the larger deployments would probably never have happened if I did it that way. It would have had unacceptable performance implications for key pages on their sites.)
I'm planning replace most of MySQL on a web app with redis requests/responses for a faster experience. And this made my day (http://ozmm.org/posts/sort_in_redis.html). Tks!
Another thing I like about Redis is that its features make it very complementary to RDBMSs, rather than a competitor in the same niche.