📁

魑魅魍魎のRedisオルタナティブまとめ

2024/10/22に公開

RedisがOSSでなくなったことを皮切りにValkeyなど新参KVSへの移行が急速に進行しているらしいので個人的まとめ。

Valkey

https://github.com/valkey-io/valkey

このプロジェクトは、オープンソースのRedisプロジェクトから新しいソース利用可能ライセンスに移行する直前にフォークされた。

2024/03/28に公開され、同年10/22現在でのstar数は16.9k。フォークであるためか比較的本家Redisに忠実な実装となっている。
フォーク後最初のアップデート(Valkey 8.0.0)にて早くもRedisの2倍の速さを獲得したらしい。伸び代があるので期待大か?
Googleから専用サービスが提供され始めたり、Wikipediaに記事が作成されるなど世間的な期待は既に非常に高い模様。

Redka

https://github.com/nalgeon/redka

Redkaは、Redis APIとの互換性を保ちながら、Redisのコア部分をSQLiteで再実装することを目指している。

2024/04/07に公開。現時点でのstarは3.5k。
完璧な永続化を想定してSQLiteをバックエンドに使用しており、HDD上で動作するため当然ながら速度は他KVSに劣る。(公式のベンチマークによるとざっとRedisの5分の1)
ネタ枠かと思いきや互換性は後述のものに比べれば高く、何より容量がなくならない限り絶対に揮発しないので意外と実用的かと思われる。ただし、本家で非推奨となった一部コマンドは使えない。
余談だが、実はうちの開発しているSNSであるNonFict内部でも使われている。

Dragonfly

https://github.com/dragonflydb/dragonfly

世界で最も効率的なインメモリ・データストア

2022/05/30に公開され、現時点のstarは25.6k。この記事で紹介したRedis亜種の中では最も古い。
Redisの20倍以上もの速さを誇るらしく、その速さのために他の全てを犠牲にしている。例としてはKey eviction(揮発)の細かな設定ができず強制的にallkeys-lruとなる。
と思ったらそもそもLRUの動作自体が近似となっている模様。キャッシュ以外には使えそうにない…
実は少し前まで「宇宙一速い」と名乗っていた。

Garnet

https://github.com/microsoft/garnet

GarnetはMicrosoft Researchが開発したリモート・キャッシュ・ストアで、強力なパフォーマンス(スループットとレイテンシー)、スケーラビリティ、ストレージ、リカバリ、クラスター・シャーディング、キー・マイグレーション、レプリケーション機能を提供する。Garnetは既存のRedisクライアントと連携することができる。

まさかのMicrosoft製ダークホース。2024/05/19公開でstar数は10.3k。
C#で実装されておりなんとRedisの1000倍以上の速度を誇っているらしいが、公式の公開したグラフが対数軸なので実感が湧かない。アピールが控えめすぎる…
例によって互換性は薄いらしい。

DiceDB

https://github.com/DiceDB/dice

DiceDBは、最新のハードウェアとリアルタイム・アプリケーションの構築に最適化された、RedisとSQLをサポートするインメモリ、リアルタイム、リアクティブ・データベースです。

2022/10/15に公開されstar数は6.5k。Redisの10倍のスピードを誇りSQLとも互換性があるらしい。
正直どうやってSQLのデータ構造とKVSを対応させているのかわからないが…
はっきりいってこの中で一番魅力が薄い。

まとめ

今後KVSのさらなる進化が進めば旧世代のソフトウェアであるRedisは廃れ始めるか、SQLのような単なるDBアクセス手法として形骸化するのかもしれない。
願わくば後者であってほしいものだが。

Discussion