Comparing the new Redis6 multithreaded I/O to Elasticache and KeyDB
docs.keydb.dev
docs.keydb.dev
At the end of the day an engineer shouldn’t pick database because it’s the fastest but because it fits their use case the best.
I get that reddis, memcached, and keydb are all roughly in memory hashmaps but beyond that knowing what makes them different, how hard are they to operate, what they are good at and bad at is going to be more helpful in selecting which technology to use than a simple throughout benchmark.
Every comparison article doesn't need to (and shouldn't) include a comparison about every kind of detail about two technologies.
> I get that reddis, memcached, and keydb are all roughly in memory hashmaps but beyond that knowing what makes them different, how hard are they to operate, what they are good at and bad at is going to be more helpful in selecting which technology to use than a simple throughout benchmark.
If a post is about speed/performance, and you want to know implementation details (or accessibility or how well it plays with your stack) then look for something else. A quick google search quickly gives me whatever details I want to know about whatever two widely used technologies:
For example redis vs memcached: https://stackoverflow.com/questions/10558465/memcached-vs-re...
But more importantly its okay for a post to be narrow in scope. The requirement should be that it is not misleading in whatever question it sets out to answer.
> So there are 3 offerings by 3 companies, all compatible with eachother and based off open source Redis: Elasticache is offered as an optimized service offering of Redis; RedisLabs and Redis providing a core product and monetized offering, and KeyDB which remains a fast cutting edge (open source) superset of Redis. This blog looks specifically at performance, however there is a section at the end of this blog that also outlines other key differences.
The last paragraphs give a good overview of the differences.
First, you mentioned memcached, but the article doesn't cover that at all. Perhaps you meant to say elasticache?
Second, I think the closing section at https://docs.keydb.dev/blog/2020/04/15/blog-post/#how-are-ke... does a reasonable job of answering the "fundamental differences of each technology and the trade offs". If it's not more in depth, that's mostly because it's comparing Redis with two forks of the codebase that haven't diverged that much.
Memcached is not a part of this comparison, only Redis and forks.
It's hard to summarize much more in a single blog post and is really up to the dev to do the research before picking a solution.
If you want to see how much Redis itself improved from 5.0 to 6.0 then you can look at Salvatore's updates: https://twitter.com/antirez/status/1110973404226772995 and other benchmarks: https://itnext.io/benchmarking-the-experimental-redis-multi-...
Also there's a matter of need. It does one no good if a KV store can churn through 200 kops/s if you can only deliver 100kops/s. If one or two redis instances (plus replicas, etc., or maybe a minimal three-master cluster) can serve the entire workload, saving two or three nodes by "upgrading" to the likes of KeyDB doesn't seem worth it. I mean, unless you're aiming to get to the melt-the-metal it's so "hot" all the time performance.
KeyDB is new.
are there significant architectural changes/tradeoffs in keydb that made it not-ideal to merge into redis?
KeyDB offers more performance, functionality and deployment features that are not possible or won't be allowed in mainline Redis.