Redka は SQLite を使用した Redis のスケーラブルな代替手段

レッドカのロゴ

レッドカのロゴ

La Redis によるライセンス タイプの変更の決定 商用製品がプロジェクトを悪用し続けることを防ぐために、自社の製品に対して オープンソースの世界ではあまり評価されていません 多くの人によって。そして、実装された変更をサポートするセクターもありますが、絶え間ない不正行為に対して声を上げて苦情を表明する人が増えているため、Redis の変更により他のプロジェクトやフォークの立ち上げが発生しました。

マイクロソフトは無駄をしなかった 押したかった瞬間 あなたのオープンソースプロジェクト ガーネット、コミュニティで知られている他の開発者もソリューションを発表しました。たとえば、Drew DeVault (Hyprland の作成者) と Redict が協力し、Linux Foundation も Valkey と呼ばれるフォークを発表しました。

ガーネット
関連記事
Microsoft の NoSQL システムである Garnet がオープンソースになりました 

そして今、 新しいプロジェクトが発表されましたが、 これは Redka と呼ばれ、その目的は RESP プロトコルと、Redis DBMS と互換性のある API を提供することですが、SQLite ライブラリに実装されています。

レッドカについて

レドカ 他のフォークやプロジェクトとは異なります Redis を置き換えることを目的とした、 Redis の RAM ストレージ制限なしで、データを迅速かつ確実に管理するソリューションを提供します。、SQLite の使用に重点を置いていることに加えて、レポート作成やデータ分析に役立つ SQL 言語を使用してデータにアクセスできるようにしています。 Redka は ACID トランザクションをサポートしており、ネットワーク経由でリクエストを受け入れるサーバーとして、または Go 言語のモジュールとして機能できます。

現在、レッドカさんは 文字列とハッシュを操作するためのデータ型サポートを追加しました、文字列データ、キー、トランザクション、ハッシュを操作するコマンドも含まれます。たとえば、キーに関連付けられた文字列値の設定と取得、キーの有効期限の設定、値の増減、テンプレートを使用したキーの検索、キーの名前変更、トランザクション内での一連のコマンドの実行などに使用できるコマンドがあります。トランザクションをキャンセルし、ハッシュされたフィールドを操作する場合と同様です。いくつかの サポートされているコマンドと機能の種類 音:

  • CADENAS- 基本的なデータ操作のための GET、SET、INCR などの操作。
  • リストとセット- リスト用の LPOP やセット用の SADD などのコマンド。
  • ハッシュ- HSET や HGET などのコマンドを使用してフィールドと値のペアを操作します。
  • オーダーセット: スコア付きの順序付けされたデータの ZADD および ZRANK。
  • 鍵の管理- キーのライフサイクルに関する DEL や EXPIRE などのコマンド。

レッドカのパフォーマンスに関しては、 実施された性能テストで実証されています Redis プロジェクトのツールを使用する 最適なパフォーマンスを大幅に下回ります。 これは Redis よりも 2 ~ 6 分の XNUMX 低いためです。これは主に、データをキー/値形式で保存するための特定の最適化が欠如していることと、SQLite に依存していることが原因です。

特定のテスト環境では、 Redis は 133 秒あたり XNUMX SET オペレーションのスループットを達成しました 139 秒あたり XNUMX 回の GET オペレーションが行われますが、 Redka は 30 万回の SET 操作のパフォーマンスを達成しました データベースをランダム アクセス メモリに配置することで、63 秒あたり 22 回の GET 操作が可能になります。データベースをディスクに保存する場合、Redka のパフォーマンスは 56 秒あたり XNUMX 回の SET 操作と、XNUMX 秒あたり XNUMX 回の GET 操作でした。

最後に、 将来のリリースの計画そして追加を見つけます リスト、コレクション (セット)、および順序付けされたコレクションのサポート。 長期的には、地理座標を操作し、コマンドをパブリッシュ/サブスクライブする機能である HyperLogLog アルゴリズムを実装することが計画されています。

彼らはこれまでにも言及しています Lua 言語のスクリプトのサポートは検討されていません。、認証、アクセス制御リスト (ACL)、監視/監視解除、および複数のデータベースを備え、クラスターのサポート (Redis Cluster) や監視 (Redis Sentinel) がないサーバーで動作する機能が実装されます。

あなたができることに興味があるなら それについてもっと学ぶ、詳細を確認できます 次のリンクで。