Live data from Hacker News

The Redis criticism thread

antirez.com

11–20 of 47 posts

Re: The Redis criticism thread

#11
post #7
post #5

This is the first time I've ever heard any criticism for redis. As far as I know, everyone loves it, it's a great tool for many jobs and it's amazingly written and solid to boot. I think many of the critics are trying to apply it in ways it wasn't meant to be used. As far as I know, its main purpose is non-critical data that needs to be accessed as quickly as possible in various different ways, and that's where redis…

I don't pay super close attention to this stuff, but it's very obvious to me that not everyone likes Redis; in particular, the kinds of people who have problems with Mongodb tend also to have the same problems with Redis; long-term operational reliability is a big question mark with it. For my part: on only a few occasions (mostly fuzzer farm stuff) have I ever used Redis and been happy with the decision. I usually r…

I don't know, I don't think it should be compared (or considered as an alternative to) MongoDB, and certainly never SQL. I use it to store cached keys, session data and similar other data that I can always regenerate. I've also had great success using it as a message queue on multiple projects.

What was your use case, and what was your experience with it?

Re: The Redis criticism thread

#12
post #10
post #8

Earlier quoted context omitted.

It would be great to also enumerate other examples where it shines. I've used it for caching, session and transient objects connected to Rails without issue for the last two years. Additionally, I've been looking at it recently for a simple database to perform fast matches on sorted data (E.g. get me the lowest number in this set).

For three years we've been using it as message bus, statistics tracker, and storing medium-term data (expires after 1 month). We've up/downgraded multiple times without issue.

>>We've up/downgraded multiple times without issue.

Why would you need to downgrade if you didn't have issues? ;) ...kinda joking, kinda honest curiosity.

Re: The Redis criticism thread

#13
post #7
post #5

This is the first time I've ever heard any criticism for redis. As far as I know, everyone loves it, it's a great tool for many jobs and it's amazingly written and solid to boot. I think many of the critics are trying to apply it in ways it wasn't meant to be used. As far as I know, its main purpose is non-critical data that needs to be accessed as quickly as possible in various different ways, and that's where redis…

I don't pay super close attention to this stuff, but it's very obvious to me that not everyone likes Redis; in particular, the kinds of people who have problems with Mongodb tend also to have the same problems with Redis; long-term operational reliability is a big question mark with it. For my part: on only a few occasions (mostly fuzzer farm stuff) have I ever used Redis and been happy with the decision. I usually r…

I would hope this is not the case, because it means the nay-sayers are careless developers, or simply internet-attention-seeking by criticizing instead of contributing.

Mongo has taken a lot of knocks in part because its write ack behavior was (initially) documented in a way that not everyone felt was sufficient, but also because it is marketed as a universal solution for RDBMS woes.

Redis has never been touted as a replacement for a primary data store, but more of a "toolbox" in some cases, or "middleware" in others. To apply the same criticisms to Redis and Mongo implies those users did not research their platform decisions at all.

Re: The Redis criticism thread

#14
post #6

> Redis is probably the only top-used database system developed mostly by a single individual currently isn't SQLite pretty much just Richard Hipp?

Dan Kennedy does a lot of work, certainly appearing to be a similar order of magnitude to DRH. Joe Mistachkin appears to do Windows almost exclusively and I can't tell if he is part time or full time.

https://www.sqlite.org/crew.html

Re: The Redis criticism thread

#15
I think many times people criticize new-ish web technologies because they don't want to spend time learning it (which can be okay). They hope to sway others away so that a critical mass of users never compels them to adopt the, now necessary, tech (not that redis is 'necessary').

Re: The Redis criticism thread

#16
To summarize quickly for those that didn't read the article, this focuses mostly on the new "clustering" aspect not on the "classic" single Redis server (if you wish).

I think it is important to be honest with the users and make it clear how and what happens behind the scenes, how data could be lost. And Salvatore has done most of this, maybe just make it a bit more explicit, as there still seems to be some confusion around.

All this is in light of 2 things -- 1) With the popularity and amount of talks and churn around distributed systems these days, people sort of expect a point on the map in the CAP triangle. So just saying we kind of do this and we provide some C, a little A and a dash HA was probably ok 5 years ago, now it needs a bit more definition, 2) In light of other database systems misleading users about what it could provides (you know which one I am talking about) and having resulted in lost data, there is a bit of apprehension and a higher bar that needs to be met in order for a db product to be accepted.

One good thing that came out recently is NoSQL database writers/vendors pushing for more rigorous tests. Tests that run for weeks and months. Consistency tests, network partition tests as run by Aphyr. It is a very good idea those things are talked about and defined better.

Re: The Redis criticism thread

#18
post #7
post #5

This is the first time I've ever heard any criticism for redis. As far as I know, everyone loves it, it's a great tool for many jobs and it's amazingly written and solid to boot. I think many of the critics are trying to apply it in ways it wasn't meant to be used. As far as I know, its main purpose is non-critical data that needs to be accessed as quickly as possible in various different ways, and that's where redis…

I don't pay super close attention to this stuff, but it's very obvious to me that not everyone likes Redis; in particular, the kinds of people who have problems with Mongodb tend also to have the same problems with Redis; long-term operational reliability is a big question mark with it. For my part: on only a few occasions (mostly fuzzer farm stuff) have I ever used Redis and been happy with the decision. I usually r…

As an alternative to SQL it's pretty awful (it's explicitly not ACID, for one).

As an alternative to an in-memory cache or (occasionally) a DB de-normalization, on the other hand, it works amazingly well for me.

I see the persistence is basically just a backup that helps your system get back up to speed quickly after a crash or systems' restart. It's not something that should ever be treated as reliable.

I wonder how many people who use it under this or similar use cases have an issue with it.

Re: The Redis criticism thread

#19
post #3

There has been a lot of constructive discussion in the Google Groups thread, and a lot of negativity on the same topic on Twitter. Ignoring for the moment the difference in discussion platforms, I am uncertain why the sudden uptick in Redis negativity. Is it from users trying (and failing) to replace RDBMS or distributed platforms feature-for-feature with a single threaded, memory limited store like Redis? Or could i…

The "clustering" feature is just now becoming stable. Distributed systems are complex (in no small part because they're generally poorly explained) so some mistakes were guaranteed. Hence the uptick in critics makes perfect sense even sans self-promotion conspiracies.

Re: The Redis criticism thread

#20
Just to be clear, the criticism is of Redis Cluster, which has been redesigned because the first design was so lax it was effectively unusable. The real issue, is that as of right now I have no idea what the exact semantics and failure conditions of Redis cluster are. I'm not clear that anyone really knows. Salvatore thinks he knows, but we can't be sure that he does.

With all this talk of practicality, what really makes distributed systems practical is when someone can do a formal analysis of them and conclude what possible states can occur in the system. This is not work that database users should do, it is work that database implementors should do. The failure to use a known consensus system is a failure to deliver a database I can understand.

I find this all a bit disappointing since I've been a huge fan of Redis since the early days. It's an amazing tool that I still have in production, but I get the feeling that it's utility will never expand to suit some of my larger needs. Bummer.

Post reply on HN