5 ms·
It's not a cache because memcache is already all the cache we need. Not sure why you mention messaging server unless you're expecting listeners to poll the serv
by mmaunder 17y ago
It's not a cache because memcache is already all the cache we need. Not sure why you mention messaging server unless you're expecting listeners to poll the server instead of get told about events. So I think it's a noSQL DB.
For my practical uses I'm most interested in Redis as a backing store for distributed persistent redundant key-value stores like:
http://kumofs.sourceforge.net/ http://kumofs.sourceforge.net/
http://opensource.plurk.com/LightCloud/ http://opensource.plurk.com/LightCloud/
And my requirements are:
1. Speed. Gobs of it. Ridiculous amounts of speed.
2. Data must get written to disk periodically and I don't care if you lose a few minutes worth when I lose a disk. I'd like some control over how much data I'm prepared to lose vs speed.
3. O(log N) scalability.
4. More interesting ways to sort, extract, modify and delete data stored in a key or multiple keys without impacting performance.
Thanks Salvatore for your hard work!!
- pashields 16y agoJust to clarify, there is no polling in redis blocking list ops. I believe the pub/sub doesn't require polling either. Given that, I can think of a lot cases where Redis will work fine as a messaging server. If you need a very sophisticated routing mechanism, you will need to look at a more dedicated solution. But if you can express the message routing in either the rpush/blpop style or in redis pub/sub, why not?
- moe 16y agoWe've found the primitives that redis gave us to be sufficient even for a fairly complex routing design. Rabbitmq (which we used previously) might still have an edge for very complex scenarios, but AMQP is generally a royal pain and we've had serious issues with rabbitmq reliability under load (and debugging the problems thereafter!). Consequently we switched our hairy mix of bindings to a straightforward "LPUSH to everyone whom it may concern" and wouldn't look back. That may be less efficient in theory, but the machine-load (i/o, CPU) went from "uh oh" to "barely measurable" for us. Even more importantly we now feel to have a much better grip on the system because if something goes wrong then we'll know where to look. In contrast rabbit was effectively a blackbox, which turned into a huge problem once it ceased to "just work".
- jasonwatkinspdx 16y ago"It's not a cache because memcache is already all the cache we need." That's quite the display of logical thought there. Rottweilers aren't dogs because black labs are all the dog we need.
- deleted 16y ago[deleted]