Open syuilo opened 1 year ago
raspberry piだとdragonfly動かないからちょっとそれも考えてほしいかもしれない https://github.com/dragonflydb/dragonfly/issues/777
dragonflyはRedisを完全に置き換えるというより大規模なシステム向けに最適化した感じっぽいのでRedisのサポートを切られるとつらい(メモリ大食いするらしいので厳しい)
DragonflyDBに関しては知識がないのでわかりませんが、RedisのフォークとしてKeyDBというものがあります。ちょうどDragonflyDBのGitHubのREADMEに掲載されたベンチマーク結果のグラフに、RedisとDragonflyDBに挟まれるような形で描かれているものです。
https://github.com/dragonflydb/dragonfly#benchmarks https://github.com/Snapchat/KeyDB
KeyDBは、Redisとの完全な互換性が維持されており、Raspberry Pi ZeroのようなARMアーキテクチャをサポートしています。
https://docs.keydb.dev/docs/ARM/
以前個人的に気になってMisskeyのRedisをKeyDBで置き換えてみた^1ことがあったのですが、その時点ではまったく問題なく動作しているように見受けられました。(今でもできるかあとで少し試してみます。)
Redisを使っている現時点でどのような問題が起きていて、どの程度改善されれば許容されるのかがわからないのでなんとも言えないのですが、個人的には、とりあえずRedisをKeyDBで置き換えてみるのがよいと考えます。
e3aeab8 で、docker-compose.yml
を下のように編集してサーバーを構築してみたところ、特にエラーなどはなく動作しています。
redis:
restart: always
- image: redis:7-alpine
+ image: eqalpha/keydb:alpine
networks:
- internal_network
volumes:
- ./redis:/data
healthcheck:
- test: "redis-cli ping"
+ test: "keydb-cli ping"
interval: 5s
retries: 20
大規模化のためにRedis対応しとるAWS使ってるので、Redis切られるとつらいです
keydb、思ったよりいい感じに動作してくれるのを確認しました dragonflyと違って高負荷時に詰まりなども発生していないかも
この「〇〇やめて□□にする」系を見ていつも思うのですが、ある程度抽象化してサーバー管理者が実装を選択できるようにできないのでしょうか。
Summary
Redisよりモダンでパフォーマンスが良さそう