kevy4.0

コマンド

184 コマンド

サーバーが応答するすべての動詞を、サーバー自身のレジストリから直接 —— COMMAND DOCS が読むのと同じテーブルである。Redis のリファレンスには無い列が二つある。このエンジンでの実際のコストと、Redis との差異である。

コマンドグループ 計算量Redis との互換性 概要
APPEND文字列値が 64 B 以下の間は償却 O(1)互換文字列値の末尾にバイト列を追加し、追加後の長さを返す。
DECR文字列O(1)互換キーの整数値を 1 減らす。
DECRBY文字列O(1)互換キーの整数値を指定した分だけ減らす。
GET文字列O(1)互換キーの文字列値を返す。
GETDEL文字列O(1)互換キーの文字列値を返し、そのキーを削除する。
GETSET文字列O(1)互換キーに文字列値を設定し、設定前の値を返す。
INCR文字列O(1)互換キーの整数値を 1 増やす。
INCRBY文字列O(1)互換キーの整数値を指定した分だけ増やす。
INCRBYFLOAT文字列O(1)差異ありキーの浮動小数点値を指定した分だけ増やす。
MGET文字列O(N)差異あり複数キーの値を返す(shard をまたいで収集する)。
MSET文字列O(N)差異あり複数のキーと値の組を設定する。アトミック性は shard 単位。
PSETEX文字列O(1)互換ミリ秒単位の TTL を付けてキーに値を設定する。
SET文字列O(1)差異ありキーに文字列値を設定する。TTL と存在条件を任意で指定できる。
SETEX文字列O(1)互換秒単位の TTL を付けてキーに値を設定する。
SETNX文字列O(1)互換キーが存在しない場合に限り値を設定する。
STRLEN文字列O(1)互換キーの文字列値の長さを返す。
DEL汎用キー操作O(N)差異あり一つ以上のキーを削除する。
EXISTS汎用キー操作O(N)差異あり指定したキーのうち存在するものの個数を返す。
EXPIRE汎用キー操作O(1)差異ありキーの TTL を秒単位で設定する(TTL が 0 以下ならキーを削除する)。
EXPIREAT汎用キー操作O(1)差異ありキーの失効時刻を Unix 時刻(秒)の絶対値で設定する。
PERSIST汎用キー操作O(1)互換キーの TTL を解除する。
PEXPIRE汎用キー操作O(1)差異ありキーの TTL をミリ秒単位で設定する。
PEXPIREAT汎用キー操作O(1)差異ありキーの失効時刻を Unix 時刻(ミリ秒)の絶対値で設定する。
PTTL汎用キー操作O(1)互換キーの残り TTL をミリ秒で返す(TTL 無しは -1、キーが存在しない場合は -2)。
RENAME汎用キー操作文字列値なら O(1)差異ありキーの名前を変更する。変更先が存在すれば上書きする(書き込みは runtime の Op 層でルーティングされる)。
RENAMENX汎用キー操作文字列値なら O(1)差異あり変更先が存在しない場合に限りキーの名前を変更する(書き込みは runtime の Op 層でルーティングされる)。
TTL汎用キー操作O(1)互換キーの残り TTL を秒で返す(TTL 無しは -1、キーが存在しない場合は -2)。
TYPE汎用キー操作O(1)互換キーに格納された値の型を返す。
UNLINK汎用キー操作O(N)差異あり一つ以上のキーを削除する(kevy の shard モデルでは DEL の別名)。
KEYSキースペース走査O(N)互換glob パターンに一致する全てのキーを返す(shard をまたいで収集する)。
RANDOMKEYキースペース走査O(1)(期待値)差異ありキースペースからキーを一つ返す。
SCANキースペース走査O(N)差異ありキースペースを一掃し、一致したキーを一度に全て返す。カーソル反復子ではない(COUNT と TYPE は受理された上で無視され、カーソルは常に 0)。
BLPOPリスト応答自体は O(1)差異あり一つ以上のリストに対する、左端からのブロッキング pop(効果は LPOP として記録される)。
BRPOPリスト応答自体は O(1)差異あり一つ以上のリストに対する、右端からのブロッキング pop(効果は RPOP として記録される)。
BRPOPLPUSHリスト応答自体は O(1)差異ありブロッキング版の RPOPLPUSH。source の末尾を pop し、destination の先頭に push する。
LINDEXリストO(1)互換指定した位置のリスト要素を返す。
LLENリストO(1)互換リストの長さを返す。
LMOVEリストO(1)差異あり二つのリストの間で要素をアトミックに移動する。
LPOPリストO(C)差異ありリストの先頭から要素を一つ以上 pop する。
LPOSリスト常に O(N)互換リスト内で一致する要素の位置を返す。
LPUSHリストO(M)互換リストの先頭に要素を一つ以上追加する。
LRANGEリストO(M)互換リストの指定範囲の要素を返す。
LREMリスト最悪 O(N*R)互換リストから指定した値に等しい要素を削除する。
LSETリストO(1)互換指定した位置のリスト要素を設定する。
LTRIMリストO(R)互換リストを指定した範囲に切り詰める。
RPOPリストO(C)差異ありリストの末尾から要素を一つ以上 pop する。
RPOPLPUSHリストO(1)差異ありsource の末尾を pop し、destination の先頭に push する。
RPUSHリストO(M)互換リストの末尾に要素を一つ以上追加する。
HDELハッシュO(M)互換ハッシュのフィールドを一つ以上削除する。
HEXISTSハッシュO(1)互換ハッシュにそのフィールドが存在するかを調べる。
HEXPIREハッシュO(F)差異ありハッシュのフィールド単位の TTL を秒で設定する。
HGETハッシュO(1)互換ハッシュのフィールドの値を返す。
HGETALLハッシュO(N)互換ハッシュの全フィールドと値を返す。
HINCRBYハッシュO(1)互換ハッシュのフィールドの整数値を増やす。
HKEYSハッシュO(N)互換ハッシュの全フィールド名を返す。
HLENハッシュO(1)互換ハッシュのフィールド数を返す。
HMGETハッシュO(M)互換ハッシュの複数フィールドの値を返す。
HMSETハッシュO(M)互換HSET の非推奨の別名。OK を返す。
HPERSISTハッシュO(F)差異ありハッシュのフィールド単位の TTL を解除する。
HPEXPIREハッシュO(F)差異ありハッシュのフィールド単位の TTL をミリ秒で設定する。
HPEXPIREATハッシュO(F)差異ありハッシュのフィールド単位の失効時刻を、Unix 時刻(ミリ秒)の絶対値で設定する。
HPTTLハッシュO(F)差異ありフィールドごとの残り TTL をミリ秒で返す(-1 は TTL 無し、-2 はフィールドが存在しない)。
HSCANハッシュO(N)差異ありハッシュのフィールドと値を反復する(単一バッチのカーソル)。
HSETハッシュO(M)互換ハッシュのフィールドを一つ以上設定し、新規に作られたフィールドの数を返す。
HSETNXハッシュO(1)互換ハッシュのフィールドが存在しない場合に限り設定する。
HTTLハッシュO(F)差異ありフィールドごとの残り TTL を秒で返す(-1 は TTL 無し、-2 はフィールドが存在しない)。
HVALSハッシュO(N)互換ハッシュの全ての値を返す。
SADD集合O(M)互換セットにメンバーを一つ以上追加する。
SCARD集合O(1)互換セットのメンバー数を返す。
SDIFF集合O(元セットの濃度の総和)互換指定したセットの差集合を返す(shard をまたいで収集する)。
SDIFFSTORE集合O(元セットの濃度の総和) に加え互換指定したセットの差集合を destination に格納する。
SINTER集合O(元セットの濃度の総和)互換指定したセットの積集合を返す(shard をまたいで収集する)。
SINTERSTORE集合O(元セットの濃度の総和) に加え O(結果の要素数)互換指定したセットの積集合を destination に格納する。
SISMEMBER集合O(1)互換値がセットのメンバーかどうかを調べる。
SMEMBERS集合O(N)互換セットの全メンバーを返す。
SPOP集合O(count)(期待値)差異ありセットからメンバーを一つ以上ランダムに取り出し、削除する。
SRANDMEMBER集合O(count)(期待値)差異ありセットのメンバーを、削除せずに一つ以上返す。
SREM集合O(M)互換セットからメンバーを一つ以上削除する。
SSCAN集合O(N)差異ありセットのメンバーを反復する(単一バッチのカーソル)。
SUNION集合O(元セットの濃度の総和)互換指定したセットの和集合を返す(shard をまたいで収集する)。
SUNIONSTORE集合O(元セットの濃度の総和) に加え O(結果の要素数)互換指定したセットの和集合を destination に格納する。
BZPOPMINソート済み集合pop 一回につき O(log N)互換一つ以上のソート済みセットから、スコアが最小のメンバーをブロッキングで pop する。
ZADDソート済み集合O(M log N)互換ソート済みセットにスコア付きでメンバーを追加する。条件フラグを指定できる。
ZCARDソート済み集合O(1)互換ソート済みセットのメンバー数を返す。
ZCOUNTソート済み集合O(N)互換指定した範囲のスコアを持つメンバーの個数を返す。
ZDIFFSTOREソート済み集合O(元セットの濃度の総和 + R log R)互換指定したソート済みセットの差集合を destination に格納する。
ZINCRBYソート済み集合O(log N)互換ソート済みセット内のメンバーのスコアを増やす。
ZINTERCARDソート済み集合O(元セットの濃度の総和)互換指定したソート済みセットの積集合の要素数を返す。
ZINTERSTOREソート済み集合O(元セットの濃度の総和 + R log R)互換指定したソート済みセットの積集合を destination に格納する。
ZPOPMINソート済み集合O(M log N)互換スコアが低いメンバーを、最大 count 個 pop する。
ZPOPMIN.BELOWソート済み集合O(M log N)kevy 固有kevy 拡張。スコアが閾値より厳密に小さいメンバーを、低い方から最大 count 個 pop する(遅延ジョブ用のプリミティブ)。
ZRANGEソート済み集合O(start + M)差異あり順位の範囲を指定してメンバーを返す。
ZRANGEBYSCOREソート済み集合O(N + M)互換指定した範囲のスコアを持つメンバーを返す。
ZRANKソート済み集合O(N)差異ありメンバーの順位をスコアの低い順で返す。
ZREMソート済み集合O(M log N)互換ソート済みセットからメンバーを一つ以上削除する。
ZREMRANGEBYRANKソート済み集合O(start + M log N)互換指定した順位の範囲にあるメンバーを削除する。
ZREMRANGEBYSCOREソート済み集合O(N + M log N)互換指定した範囲のスコアを持つメンバーを削除する。
ZREVRANGEBYSCOREソート済み集合O(N + M)互換指定した範囲のスコアを持つメンバーを、スコアの高い順に返す。
ZSCANソート済み集合O(N)差異ありソート済みセットのメンバーとスコアを反復する(単一バッチのカーソル)。
ZSCOREソート済み集合O(1)互換メンバーのスコアを返す。
ZUNIONSTOREソート済み集合O(元セットの濃度の総和 + R log R)互換指定したソート済みセットの和集合を destination に格納する。
XACKストリームO(A log P)互換コンシューマーグループの pending エントリを確認済みにする。
XADDストリーム挿入は O(log N)差異ありストリームにエントリを追記する。トリム指定を同時に行える。
XAUTOCLAIMストリームO(log P + K + COUNT log N)差異ありカーソル位置から、idle 状態の pending エントリを走査して claim する。
XCLAIMストリームO(A * (log P + log N))差異あり指定した id の idle な pending エントリを、コンシューマーへ claim する。
XDELストリームid が D 個で O(D log N + N*F)互換ストリームから id を指定してエントリを削除する。
XGROUPストリームCREATE / DESTROY は O(1) に加えて O(N*F) の再…差異ありストリームのコンシューマーグループを管理する。
XINFOストリームSTREAM は O(1)差異ありストリーム本体、そのグループ、そのコンシューマーの内部状態を参照する。
XLENストリームO(1)互換ストリームのエントリ数を返す。
XPENDINGストリームサマリ形式は O(P*C)互換コンシューマーグループの pending エントリを、サマリ形式または拡張形式で参照する。
XRANGEストリームO(log N + M)互換ID 範囲に含まれるストリームのエントリを返す。
XREADストリームストリーム S 本に対して O(S * (log N + M))差異あり1 本以上のストリームから新規エントリを読む。ブロックも指定できる。
XREADGROUPストリーム「>」形式は O(log N + U + M)差異ありコンシューマーグループの一員としてストリームを読む。ブロックも指定できる。
XREVRANGEストリームO(log N + M)互換ID 範囲に含まれるストリームのエントリを逆順で返す。
XSETIDストリームO(log N)互換ストリームの最終生成 ID と付随カウンタを上書きする。
XTRIMストリーム退避されるエントリが R 件で O(R log N + N*F)差異あり長さまたは最小 ID を基準にストリームをトリムする。
GEOADD地理空間O(M log N)互換geo set に経度・緯度つきのメンバーを追加する。
GEODIST地理空間O(1)互換2 つのメンバー間の距離を返す。
GEOHASH地理空間O(M)互換各メンバーの base32 geohash 文字列を返す。
GEOPOS地理空間O(M)互換各メンバーの経度・緯度を返す。
GEORADIUS地理空間1 回の呼び出しで O(N)差異あり座標を中心とする旧来形式の半径検索。STORE による書き出しにも対応する。
GEORADIUSBYMEMBER地理空間1 回の呼び出しで O(N)差異あり既存メンバーを中心とする旧来形式の半径検索。STORE による書き出しにも対応する。
GEOSEARCH地理空間1 回の呼び出しで O(N)差異ありメンバーまたは座標を起点として、半径または矩形の範囲でメンバーを検索する。
GEOSEARCHSTORE地理空間検索に O(N)差異ありsource に対して GEOSEARCH を実行し、その結果を destination に書き出す。
ECHO接続O(1)互換与えられたメッセージをそのまま返す。
HELLO接続O(1)差異ありハンドシェイク。サーバ情報を返し、RESP のプロトコルバージョン(2 または 3)を切り替える。
PING接続O(1)差異ありサーバへの疎通確認。PONG、または与えられたメッセージを返す。
QUIT接続O(1)互換OK を返してからコネクションを閉じる。
SELECT接続O(1)差異あり論理データベースを選択する。kevy は単一 DB であり、index 0 だけを受理する。
BGREWRITEAOFサーバーfan-out は O(S)差異ありappend-only file の再書き出しをバックグラウンドで開始する。
BGSAVEサーバーfan-out は O(S)差異ありスナップショットの保存をバックグラウンドで開始する。
CLIENTサーバーID / GETNAME / SETNAME / INFO は O(1)差異ありコネクションの参照と制御を行うサブコマンド群。
CLUSTERサーバーINFO / NODES / SLOTS / SHARDS / MYID は…差異ありクラスタトポロジの参照(shard 上に構成した仮想ノードモデル)。
COMMANDサーバー引数なし / LIST / DOCS は verb 数 V に対して O(V)差異ありコマンドテーブルを参照する(COUNT / LIST / INFO / DOCS)。
CONFIGサーバーGET は O(patterns * 16)差異ありサーバ設定パラメータを読み書きする。
DBSIZEサーバーO(S)互換全 shard を合計した key 数を返す。
DEBUGサーバーSLEEP は差異ありデバッグ用サブコマンド。SLEEP は shard をブロックし、それ以外のサブコマンドは OK として受け流す。
FLUSHALLサーバーfan-out は O(S)差異あり全 shard の全 key を削除する。
FLUSHDBサーバーO(N + S)差異あり現在のデータベースの全 key を削除する。kevy は単一 DB のため FLUSHALL と同じ。
INFOサーバーkeyspace に対しては O(1)差異ありサーバの統計と状態を、セクション単位のテキストで返す。
MEMORYサーバーUSAGE は O(1)差異ありメモリ状態を参照するサブコマンド群。
SAVEサーバーfan-out は O(S)差異ありデータセットをディスクへ同期的にスナップショットする。
SHUTDOWNサーバー停止フラグを立てるまでが O(1)差異ありサーバプロセスを停止する(応答を返さないままコネクションが切れる)。
SLOWLOGサーバーGET は O(S) の fan-out に加えて差異ありスローコマンドログの参照とリセット。
DISCARDトランザクションO(1)互換開いている MULTI トランザクションを破棄する。
EXECトランザクションキュー済みコマンドのコストの総和差異ありMULTI 以降にキューされたコマンドをすべて実行する。
MULTIトランザクションO(1)互換トランザクションを開始する。以降のコマンドは EXEC まで積まれる。
UNWATCHトランザクションO(1)互換WATCH した key をすべて忘れる。
WATCHトランザクションkey W 個に対して O(W)互換次の EXEC のために、key を楽観ロックの対象として監視する。
EVALスクリプトコンパイルのコストと差異ありLua スクリプトをサーバ側で実行する。numkeys が 1 以上なら KEYS[1] の shard へルーティングされる。
EVALSHAスクリプトキャッシュの引き当てが O(1)差異ありSHA1 ダイジェストを指定して、キャッシュ済み Lua スクリプトを実行する。
SCRIPTスクリプトLOAD は O(len(script))差異ありプロセス全体で共有する Lua スクリプトキャッシュを管理する。
PSUBSCRIBEPub/SubO(p * P)互換glob パターンに一致するチャネルを購読する。
PUBLISHPub/Subチャネルの引き当てが O(1)互換チャネルへメッセージを送り、受信者数を返す。
PUNSUBSCRIBEPub/SubO(p * P)互換パターンの購読を解除する(引数がなければ全パターン)。
SUBSCRIBEPub/Subチャネル c 個に対して O(c)差異あり指定したチャネルを購読する。
UNSUBSCRIBEPub/Subチャネル c 個に対して O(c)互換チャネルの購読を解除する(引数がなければ全チャネル)。
FAILOVERレプリケーションコマンド自体は O(1)差異あり計画的な無損失ハンドオーバー。書き込みを止め、対象レプリカが追いつくのを待ち、それを昇格させ、自身はそのレプリカに追従する。
REPL.TOKENレプリケーションO(S)kevy 固有kevy 拡張。read-your-writes トークンを発行する —— shard ごとの [generation, offset] の組であり、primary は自身の feed 末尾を、replica は適用済みの位置を返す。
REPL.WAITレプリケーションO(S)kevy 固有kevy 拡張。replica 上では、与えられた REPL.TOKEN を全 shard が適用し終えるまでブロックする(以降の読み取りは read-your-writes になる)。成功で +OK、タイムアウトまたは generation 不一致では -MISDIRECTED writer is <primary> を返す。TIMEOUT の既定は 1000 ms、上限は 60 s。primary 上では即座に +OK。
REPLICAOFレプリケーションコマンド自体は O(1)差異ありこのサーバを別のサーバのレプリカにする。NO ONE で昇格させる。
ROLEレプリケーションreplica では O(1)互換このサーバのレプリケーション役割と状態を返す。
SLAVEOFレプリケーションO(1) と差異ありREPLICAOF の旧名エイリアス。
WAITレプリケーションO(S)差異あり全 shard の master_repl_offset が numreplicas 台以上の replica に ack されるまで(または timeout ミリ秒が経過するまで)ブロックし、shard 横断での ack 済み replica 数の最小値を返す。timeout 0 は無期限待ちだが、上限は 60 s。注意:replica の ACK は fsync による永続化を意味しない。
IDX.COUNTインデックスshard あたり O(log N + matched)kevy 固有範囲述語または等値述語に一致するインデックスエントリの件数を数える。
IDX.CREATEインデックス呼び出し自体は O(1)kevy 固有key の prefix に対する二次インデックスを宣言する(カタログの変更であり、サイドカーへ永続化される)。
IDX.DROPインデックスO(catalog size)kevy 固有宣言済みのインデックスを削除する(カタログの変更であり、サイドカーへ永続化される)。
IDX.EXPLAINインデックスプラン自体は解析のみで済むがkevy 固有IDX.QUERY の解析だけを行い、実行はしない。kind、state、est_rows、そしてプラン 1 行を返す。
IDX.LISTインデックスO(1) ではないkevy 固有宣言済みのインデックスを、ビルド状態と統計とともに列挙する。
IDX.QUERYインデックスインデックスの kind によるkevy 固有インデックスに問い合わせる。範囲 / 等値、text MATCH、vector KNN、集約グループ、2 つのインデックスの COMPOSE のいずれか。
IDX.REBUILDインデックスvector インデックス専用(tombstone の圧縮)kevy 固有ANN インデックスを再構築する(tombstone の圧縮)。
IDX.VERIFYインデックスshard あたり O(N)kevy 固有インデックスを検証し、entries / bytes / coerce_failures / duplicates / drift / checked を報告する。
VIEW.CREATEビュー呼び出し自体は O(tree size)kevy 固有複数のインデックスを合成した view を、ORDER BY つきで宣言する(カタログの変更であり、サイドカーへ永続化される)。
VIEW.DROPビューO(catalog size)kevy 固有宣言済みの view を削除する(カタログの変更であり、サイドカーへ永続化される)。
VIEW.EXPLAINビュー葉ごとの (log N + matched) の総和kevy 固有view の合成ツリーを、葉ごとのカーディナリティつきで説明する。
VIEW.LISTビューorigin 側で O(views)kevy 固有宣言済みの view を、モードと形状とともに列挙する。
VIEW.QUERYビューvirtual は O(log N_order + candidates *…kevy 固有view の順序づけられたメンバーをページングして取得する。VIA テンプレート経由でフィールドを hydrate することもできる。
VIEW.REBUILDビューmaterialized 専用kevy 固有materialized view の再構築を強制する。
VIEW.VERIFYビューmaterialized は O(M)kevy 固有view を検証し、メンバー数とバイト数の統計を報告する。
FEED.READ変更フィード対象は単一の shard である(shard は引数であってkevy 固有1 つの shard から、generation / offset のカーソル以降の変更フィードフレームを読む。
FEED.SHARDS変更フィードO(1)kevy 固有変更フィードの shard 数を返す。
FEED.TAIL変更フィード単一の shard 上で O(1)kevy 固有指定した shard の、現在の feed generation と次の offset を返す。
PREFIX.DIGESTマイグレーション全 shard でkevy 固有prefix 配下の行に対する順序非依存のチェックサム。移行時の検証に使う。
PREFIX.STATSマイグレーション全 shard で keyspace を全走査するためkevy 固有key の prefix に対する key 数とバイト数の統計を返す。