by medium_burrito on 4/27/21, 5:02 PM
The real problem is the Redis Cluster protocol, which pushes all the smarts onto the client. This means each client implementation behaves differently and fails differently.
I would encourage Redis users to use Envoy Proxy as the Redis client (ie use vanilla client, and use Envoy as the cluster client). You get all the HA and usefulness of Redis Cluster, but way less of the headache. Also, strongly encourage people to check out Elasticache, which is really good.
by gtrubetskoy on 4/27/21, 11:14 PM
by chadd on 4/27/21, 9:10 PM
We (me and some folks at my old consultancy) wrote an Erlang version of Redis (
https://github.com/cbd/edis) for some of the same reasons - multithreading changes some of the scaling semantics in interesting ways. It was mostly for fun but ended up in some real projects as a simple REDIS protocol implementation front-end where the backend could be replaced with whatever the implementor wants.
by hardwaresofton on 4/28/21, 12:12 AM
Does anyone have any experience with these other Redis clones? I need to write a benchmark on these someday (the outline for the blog post is already written), but have restricted my yak shaving recently:
- https://github.com/Tencent/Tendis
- https://github.com/Netflix/dynomite
On a separate note, was FLASH (as in "flash memory") supposed to be an acronym? I've never seen people treat it as an acronym before.
by klohto on 4/27/21, 3:56 PM
Any experience with KeyDB in production?
Is the Flash support in KeyDB still only in "Pro" version? Cannot find anything in the docs.
by Thaxll on 4/27/21, 6:49 PM
It's multithreaded but what about Redis running on a single core in a cluster? Like running 8 Redis on a single 8 cores CPU. I don't really understand the reason to run Redis on multiple core since you can run multiple Redis on a single CPU with clustering which will have better perforamce than running KeYDB with the same number of cores.
by troquerre on 4/27/21, 5:35 PM
Are you concerned about AWS starting a competitor to keydb cloud/have you considered modifying your license to prevent that from happening? I'd imagine that'd be important in ensuring the long term sustainability of keydb development
by tammerk on 4/27/21, 5:31 PM
I can't find in documents but does multi-threading effect consistency somehow? Is there a chance that I wouldn't read what I just wrote? I'm talking about single node, not about replication, cluster etc.
If it provides same consistency, is threading like :
sock_read();
lock(datastructures);
set x=3;
unlock(datastructures);
sock_write();
by solosoyokaze on 4/27/21, 4:53 PM
"My thought process was simply that there is a big need here and Redis had for some reason decided not to serve it. If they won’t then we will."I feel like this and the general tone of the article are needlessly antagonistic toward Redis. KeyDB is building their entire business off of it after all.
There may very well be a need for multi-threaded Redis, but Redis as it stands today is an amazing project and there's something to keeping it simple along the lines of the project philosophy.
by tyingq on 4/27/21, 5:55 PM
I'm curious about the name. Putting "DB" in the name sort of suggests it might support persistence, more data than fits in memory, write-through, etc. Is that the case? Or is the "DB" some nod that clustering means that "in-memory" doesn't have to be ephemeral?
Or in short, where is KeyDB headed, longer term?
by welder on 4/27/21, 4:10 PM
by unmole on 4/27/21, 4:09 PM
Probably off-topic but I'm curious about the HPE and Huawei logos on KeyDB's website [0]. What is their involvement in their project?
0: https://keydb.dev/
by throwaway823882 on 4/27/21, 7:53 PM
Redis is one of those things where you see a car with an after-market door on it, but the door is actually a house door, cut with a sawzall into the shape of a car door.
by Weryj on 4/27/21, 10:39 PM
Would this mean that in a single core or low end environment, it would be better to use Redis. I'm assume cutting out multi-core complexities would be beneficial.
by Rafuino on 4/27/21, 7:24 PM
by stanislavb on 4/28/21, 1:36 AM
by atonse on 4/27/21, 4:32 PM
This is totally going to be a Hacker News Bingo type of question.
But has anyone tried to do a clean room implementation of Redis using Rust, but speaks the same wire protocol? You would get the zero-cost multi-threading, memory safety, etc, and it would be a drop in replacement.