Lua scripting! Once people figure out what Redis' Lua scripting is good for, and it gets in a stable release, it's going to set the world on fire. In a good way.
When one of the services I work on was having huge performance problems, and nothing I did seemed to make it fast enough, I realized that the main data-manipulation logic -- previously a combination of Python and SQL -- could be rewritten as a Lua script in Redis. I learned the basics of Lua in about an hour, migrated the data over to Redis, made the necessary changes to the code, and everything worked beautifully. Months of crippling speed problems vanished in a single long day.
Redis 2.6 saved my ass. Now, when I need to store data, it's always one of the first things to come to mind, since I know I can count on it to be fast, solid, and flexible enough to do all sorts of things.
I wrote a library to simplify using Redis' lua scripting facility from inside a rails app: http://shopify.github.com/wolverine/. We've been using it at Shopify for inventory management, and it's let us do a lot of cool stuff, faster than ever.
Disclaimer: I built it before I understood what the KEYS arguments were supposed to be used for, so it won't play nice with clustering, yet.
Lua scripting in Redis is a game changer. I've been using it quite a bit lately and it lets you do amazingly powerful queries and data manipulation really really quickly with very little code.
Super excited because of what's not mentioned in the release notes. With 2.6 out of the door, I am sure antirez and Pieter can concentrate on redis sentinel (for high availability) and redis cluster.
Redis is amazing. But I don't see much discussion about its pubsub capabilities. Are there any real-world stories of how well it scales, and how much pubsub traffic a single server can handle?
2.6 significantly improve Pub/Sub real-world reliability by implementing detection for slow readers, and closing the connection when a given (configurable) amount of memory is used by this slow consumer.
Most redis-based queues/websocket servers makes use of Redis Pub/Sub. StackOverflow uses Redis Pub/Sub for maintaining synchronized local caches in their load balanced web servers. Whilst StackOverflow Careers uses a Pub/Sub powered RedisMQ host for its BackOffice services: https://github.com/ServiceStack/ServiceStack/wiki/Messaging-...
NewsBlur (social feed reader) uses Redis pubsub for real-time as well: http://blog.newsblur.com/post/20371256202/building-real-time.... Now I'll have up to 500 concurrent clients, but I couldn't be happier with how utterly simple it was to get Python to talk to Redis to talk to Node to talk to Socket.IO in JavaScript on the browser.
I use it during feed fetching to notify all of the users subscribed to a feed's updates.
Scripting with Lua is a really cool addition. Adding scripting to an already awesome datastore like redis just makes it that much more flexible. I'm interested to see what types of things people do with this added functionality.
When one of the services I work on was having huge performance problems, and nothing I did seemed to make it fast enough, I realized that the main data-manipulation logic -- previously a combination of Python and SQL -- could be rewritten as a Lua script in Redis. I learned the basics of Lua in about an hour, migrated the data over to Redis, made the necessary changes to the code, and everything worked beautifully. Months of crippling speed problems vanished in a single long day.
Redis 2.6 saved my ass. Now, when I need to store data, it's always one of the first things to come to mind, since I know I can count on it to be fast, solid, and flexible enough to do all sorts of things.