3 ms·
Is Redis a one-man show? (plus contributors) I am still using memcached, but consider Redis in future. I am looking for a Redis-based high-performance message
by frik 9y ago
Is Redis a one-man show? (plus contributors)
I am still using memcached, but consider Redis in future.
I am looking for a Redis-based high-performance message-queue that can be filled from Nodejs and consumed with PHP. Basically a high-performance message-queue that doesn't need dozens of servers to start with.
- kennon42 9y agoI would recommend checking out Faktory (https://github.com/contribsys/faktory https://github.com/contribsys/faktory), by the author of Sidekiq. It's fairly new but looks interesting. For something production-tested already, I've found RabbitMQ to be very easy to operate as a single server. You obviously don't get HA with a single server, but it's been a breeze to manage.
- why-el 9y agoTry https://github.com/antirez/disque https://github.com/antirez/disque. Written by the same guy behind Redis. > Is Redis a one-man show? (plus contributors) Well, yes, started by one man, and he continues to lead it, with many contributions from the community. Update: I fixed the wrong URL.
- gizzlon 9y ago> Try https://github.com/resque/resque https://github.com/resque/resque. Written by the same people behind Redis. Huh? I don't think it is, Redis is by antirez .. https://github.com/resque/resque/graphs/contributors https://github.com/resque/resque/graphs/contributors
- antirez 9y agoRight, not the same devs. Resque originally was from GitHub folks. Now probably maintained by other people.
- why-el 9y agoOh damn, I meant https://github.com/antirez/disque https://github.com/antirez/disque, not resque. Apologies.
- detaro 9y agoFWIW, it appears the current plan is to not continue it as a standalone app but turn it into a redis module: https://gist.github.com/antirez/a3787d538eec3db381a41654e214b31d https://gist.github.com/antirez/a3787d538eec3db381a41654e214...
- gizzlon 9y agoYeah, kind of. High quality software though, recommended for many things :)
- antirez 9y agoHello frik, Redis at this point is still handled by me directly for most parts, but we got recently (a few days ago) a new OSS payed contributor, https://github.com/artix75 https://github.com/artix75. Fabio works part time but 100% at Redis OSS. Additionally I receive help from Redis Labs core developers, and by an impressive Chinese community, see for instance the work made recently by http://github.com/soloestoy http://github.com/soloestoy in pull requests about bug fixing and improvements. Plus other spontaneous contribs from other companies or individuals. I continue to be the person that writes most of the new code, basically, but without the contributions to bring stability, testing and investigations to Redis, it would not be practically possible to continue the development alone. Not now that we have so many subsystems: data structures, scripting, modules, replication, cluster, sentinel, persistence, and so forth. About message queues, I developed recently one called "Disque", but this is going to be totally ported to Redis, as a module, during the first two quarters of 2018. Otherwise there are many other solutions, many of them are based on Redis itself.
- zbentley 9y agoFor your use case, RabbitMQ will probably suffice. It can work very well with a single server, and, if you set it up in memory-only mode, is at least competitive with (if not superior to) Redis in terms of performance. If you use Rabbit's push-based subscriptions fully, it will far exceed Redis (edit: is Redis doing push-based pubsub these days? I'm told by a coworker that it is). I only mention this since you said "high-performance message-queue" in your comment; the out of the box performance of Redis and RMQ with zero tuning is more than enough for most people. While Redis's protocol is simpler, it is a full memory database (with enableable persistence) plus optional queue/pubsub extensions. RabbitMQ is trying to be a full queue/pubsub system only, with memory and persistent options. Its replication and durability features, if you want to add more servers, are also much longer-standing/more battle-tested (though far from perfect; I'm looking at you, "pause-minority" failures). Redis's persistence is quite good these days, though, so that's less of a competitive point. RabbitMQ's setup is on par with Redis for simplicity. Client libs exist for PHP and Nodejs, and, while the protocol is more complex than Redis's, that usually just means "copy lines from $how_to_guide for startup/shutdown and then just publish/consume like you'd expect". If I wanted a cache server that I occasionally needed to subscribe to, I'd use Redis no question. For a performance-oriented queue that needed either durability or throughput scalability, I'd start with Rabbit.