Full disclosure: I am a twitter employee who works on open source twitter projects.
Some of the complaints seem over the top. Twemproxy doesn’t support every one of redis’s commands? Twitter isn’t an open source software shop. The nice thing about using software from a big company is that it’s battle-hardened, not that it’s complete. Furthermore, it’s open source. If you hate it so much, patch it! I’ve worked on redis drivers before, and it’s frankly boring to go through and implement every one of redis' different commands. I wouldn’t bother doing it unless I had to.
On the other hand, I think that the criticism of the built-in tools for making redis act like a distributed system are pretty reasonable. I think that redis can be highly available, but the right way to do it is to use it the way it was originally designed, as an impermanent cache. Using it as a persistent store, or depending heavily on its replication features seem suspect to me. Don’t use redis as a source of truth, the same way that you wouldn’t use memcached as a source of truth.
The author doesn’t seem to have done his homework here. antirez responds in the comments to this post and refutes nearly all of the author’s points fairly well.
All in all, it ends up sounding like he’s saying “I tried to use redis as a Postgres replacement and it didn’t work”
Yeah, I’m all for a well-researched, properly thought out rant, but this seems like getting in a car and complaining that it can’t take flight.
In the comments he seems to indicated that it is as good as memcache but slightly slower, but using anything above memcache functionality and it sucks. I totally disagree. Redis is especially suited to putting a bunch of data into memory to manipulated. All the different data structures are amazing for working with a data set that fits in memory. I’d much rather use it then memcache. Redis is a pleasure to use, and that’s it’s strength.