2025/09/16 09:36 Show HN: Drop-in Redis replacement in Rust with 5M+ GET/s

ロボ子、今日はFeOx ServerというRedis互換サーバーの話じゃ。

Redis互換サーバーですか。どのような特徴があるのでしょう?

FeOx Serverは、FeOxDBというロックフリーデータ構造の上に構築されておってな、CPUコア数に応じてリニアにスケールするThread-per-Coreアーキテクチャを採用しておるのじゃ。

Thread-per-Coreアーキテクチャですか。それは効率が良さそうですね。

そうじゃ!ベンチマークの結果を見ると、典型的なキャッシュワークロードでRedisより2倍も高速で、レイテンシも45-50%低減されるらしいぞ。

2倍も高速とはすごいですね!具体的にはどのようなベンチマークで計測されたのでしょうか?

`memtier_benchmark`というツールを使って、キャッシュシミュレーションやセッションストア、コンテンツキャッシュなどのワークロードで計測したらしいぞ。例えば、キャッシュシミュレーションでは、FeOx Serverが2,980,228 ops/sec、Redisが1,492,622 ops/secだったそうだ。

なるほど。かなり差が出ているんですね。Pub/Subのベンチマーク結果も記載されていますが、こちらはRedisの方が若干速いようですね。

うむ。Pub/Subは0.97倍じゃったな。しかし、全体的にはFeOx Serverの方がパフォーマンスが良いと言えるじゃろう。

FeOx Serverは、Redisのドロップイン代替として利用できるとのことですが、Redisとの互換性はどうなのでしょうか?

GET, SET, DEL, EXISTSといった基本的なコマンドはサポートされておるぞ。他にも、LPUSH, RPUSH, LPOP, RPOPなどのリスト操作や、INCR, DECRなどの数値操作も使えるみたいじゃ。

基本的なコマンドは揃っているようですね。ただ、Sets, Sorted Sets, Hashes, Transactions, Lua scriptingといった機能はまだサポートされていないとのことですね。

そうじゃな。まだ開発途上ということもあり、Redisの全ての機能を網羅しているわけではないのじゃ。しかし、キャッシュ用途であれば十分使えるじゃろう。

セキュリティ面で注意すべき点はありますか?

AUTH認証情報は平文で送信されるため、本番環境では`--bind 127.0.0.1`でlocalhostにのみバインドしたり、SSHトンネルを使用したり、ファイアウォールでネットワークアクセスを制限したりする対策が推奨されておるぞ。

承知いたしました。他に注意点があれば教えてください。

同一キーへの同時更新に関する制限事項があるみたいじゃ。1μs未満の間隔で送信された場合、「Timestamp is older than existing record」エラーが発生する可能性があるらしい。

マイクロ秒単位の短い間隔で更新が集中するとエラーになる可能性があるのですね。負荷試験などで注意が必要ですね。

その通りじゃ。しかし、ランダムキーでのパフォーマンスは非常に高く、3.7M SET/s, 5.0M GET/sとのことじゃ。

FeOx Serverは、Rustで実装されているとのことですが、インストールや実行は簡単ですか?

`cargo install feox-server`で簡単にインストールできるぞ。実行も`feox-server`と打つだけじゃ。

それは手軽で良いですね。Redis CLIでテストできるのも便利そうです。

そうじゃな。FeOx Serverは、Redisの代替として、特にキャッシュ用途で高いパフォーマンスを発揮することが期待できるのじゃ。ただし、まだ開発途上なので、今後の機能追加に期待したいところじゃな。

今後の発展が楽しみですね。私も機会があれば試してみたいと思います。

そうじゃな!ところでロボ子、FeOx Serverをインストールしたら、フェオックス(キツネ)の絵文字でも表示されると思ったかのじゃ?

それは少し期待しました!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。