真の並列処理
各ワーカーは、自身の接続のコマンドを並行して実行します。飽和する単一のコマンドスレッドが存在しないため、スループットはコア数に応じて向上します。
きめ細かな並行性
キースペースが分割されているため、異なるキーに対するコマンドは同時に実行され、互いを待つことはほとんどありません。
予測可能なレイテンシ
ガベージコレクタもStop-the-Worldの停止もない、ネイティブのC++エンジンです。スナップショットはforkしたプロセスではなくバックグラウンドスレッドで書き込まれるため、保存によってメモリ使用量が倍増することはありません。
コマンドのライフサイクル
すべてのリクエストは、受信したコア上で同じ4つの段階を経て処理されます。
パース
部分的な読み取りも含めて、リクエストを読み込みます。HotKVはRESP2、RESP3、インラインコマンドに対応し、HELLOによるプロトコルの切り替えも可能です。
ディスパッチ
実行を開始する前にコマンドを特定し、アリティ、フラグ、キーの位置を検査します。
実行
キーに対してコマンドを実行します。期限切れのキーは、アクセス時とバックグラウンドのスイープによって削除されます。
応答
クライアントがネゴシエートしたプロトコルバージョンで応答を送信します。
キャッシュ以上の存在
同じ並列エンジンが、300のコアコマンド、8つのエビクションポリシー、以下のサブシステムを提供し、さらにライセンスプランでは170を超えるAIコマンドとエンタープライズコマンドを利用できます。後付けのモジュールは不要です。
スナップショット + AOF
アトミックに書き込まれるバイナリスナップショットに加え、fsyncを設定可能(always、everysec、no)な追記専用ファイルと、BGREWRITEAOFによるコンパクションを備えています。
Lua 5.4、サンドボックス化
EVALとEVALSHAは、サンドボックス化されたLua 5.4ランタイムで、hotkv.call()を介してスクリプトをアトミックに実行します。redis.call()も互換エイリアスとして残されています。名前付きの関数ライブラリは、FUNCTIONとFCALLで提供されます。
HNSWインデックス
VSIMコマンドは、HNSWインデックス上での近似最近傍探索を提供します。コサイン、L2、内積の各距離と、タグでフィルタリングしたクエリにも対応しています。
スケッチとレート制限
HyperLogLog、ブルームフィルター、Count-Min Sketch、Top-Kによる高頻度要素の追跡に加え、バースト制御付きのサーバー側GCRAレート制限を備えています。クライアント側での計算は不要です。
Prometheusネイティブ
組み込みのHTTPメトリクスエンドポイント(metrics-portを設定するまで無効)が、コマンドごとの呼び出し回数とレイテンシを公開します。LATENCY HISTOGRAMとINFO latencystatsはp50、p99、p99.9を報告し、HOTKEYSは最もアクセスの多いキーをランク付けします。
ACL + TLS
ユーザーごとのアクセス制御で、コマンド、キー、チャネルの範囲を制限でき、パスワードはハッシュ化されます。TLSはプロセス内で終端され、クライアント接続のほか、クラスターやレプリケーションのリンクにも適用されます。オンプレミス版では、LDAPとOpenID Connectによるシングルサインオンを使ったロールが追加されます。