misskey icon indicating copy to clipboard operation
misskey copied to clipboard

RedisやめてDragonflyDBにする

Open syuilo opened this issue 2 years ago • 7 comments

Summary

Redisよりモダンでパフォーマンスが良さそう

syuilo avatar Apr 12 '23 07:04 syuilo

raspberry piだとdragonfly動かないからちょっとそれも考えてほしいかもしれない https://github.com/dragonflydb/dragonfly/issues/777

mattyatea avatar Apr 12 '23 07:04 mattyatea

dragonflyはRedisを完全に置き換えるというより大規模なシステム向けに最適化した感じっぽいのでRedisのサポートを切られるとつらい(メモリ大食いするらしいので厳しい)

nexryai avatar Apr 12 '23 07:04 nexryai

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で置き換えてみるのがよいと考えます。

okayurisotto avatar Apr 12 '23 08:04 okayurisotto

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

okayurisotto avatar Apr 12 '23 08:04 okayurisotto

大規模化のためにRedis対応しとるAWS使ってるので、Redis切られるとつらいです

kiyo4act avatar Apr 13 '23 14:04 kiyo4act

keydb、思ったよりいい感じに動作してくれるのを確認しました dragonflyと違って高負荷時に詰まりなども発生していないかも

u1-liquid avatar Jun 28 '23 02:06 u1-liquid

この「〇〇やめて□□にする」系を見ていつも思うのですが、ある程度抽象化してサーバー管理者が実装を選択できるようにできないのでしょうか。

MineCake147E avatar Jul 03 '23 10:07 MineCake147E