redis小本(一)

1977 ワード

一、タイムアウト時間:
  • は、タイムアウト時間が設定されているkeyに対して、キー値ペアを変更する操作を行っても、タイムアウト時間に影響しません.
  • keyタイムアウト時間を非正数に設定したり、過去の時間に設定したりすると、このkeyは直接削除されます.
  • すでにタイムアウト時間が設定keyに対してタイムアウト時間を再設定すれば、元のタイムアウト時間を
  • に上書きすることができる.
  • persistコマンドを使用すると、expiresコマンドによって生成されたタイムアウト時間を
  • から削除できます.
  • redisインスタンスがオンになっていない場合でも、expire時間は
  • を続行します.
  • redisのexpiresはどのように実現されたのでしょうか.-パッシブ削除は、アクセスされるたびにこのkeyのタイムアウト時間をチェックする-アクティブ削除は、以下の3つのステップに分けられ、毎秒10回行われる:(1)20個のランダムなタイムアウト時間のあるkeyがタイムアウトしたかどうかを見てみる(2)タイムアウトにチェックされたkeyをすべて削除する(3)25%を超えるkeyがタイムアウトした場合、ステップ1
  • を繰り返す.
    二、事務:
  • トランザクションは原子的であり、すべてのコマンドが実行されるか、すべてのコマンドが
  • を実行しないかのいずれかです.
  • トランザクションの実行には、(1)トランザクション開始、(2)コマンドエンキュー、(3)コマンド
  • の3つの順序があります.
  • MULTI、EXEC、DISCARDを使用したトランザクションの使用-MULTIを使用してトランザクションを開始します.このコマンドの下にあるすべてのコマンドは、キューに入ります.-EXECコマンドを使用して、キュー内のすべてのコマンドを一括して実行します.結果は、キュー内の各コマンドの実行の戻り結果です.-DISCARDを使用して、トランザクション・キューを空にしてトランザクションを閉じることができます.-WATCHコマンドを使用すると、あるキーの値を監視できます.このキーにアクセス中に他のクライアントがこのキーを変更した場合、本クライアントは操作を実行せず、失敗した
  • を返します.
  • トランザクションコマンドをエンキュー中にエラーが発生した場合、トランザクションは自動的に終了します.
  • WATCHコマンドの実行原理:キー値を監視すると、リストが生成され、リストの値は監視されているすべてのキーであり、各キーに対して、現在のキーを監視しているすべてのクライアントであるチェーンテーブルが掛けられている.このキーの値が変更された場合、このキーを監視するクライアントのリストを巡り、各クライアントのREDIS_DIRTY_CASフラグ位置ビット、クライアントがこのkeyにアクセスするまで待っていたら、REDIS_DIRTY_CASフラグビットがセットされると、コマンド実行に失敗する
  • 三、ロット操作
  • redisを使用して大量のデータ挿入操作を行うには、1本の挿入に時間がかかりすぎる.1本の挿入ごとにserver側の返信
  • を待つからだ.
  • redis-cliは、複数の操作をファイルに書き込む、redis-cliにこのファイルを操作させる、迅速な一括操作を行う方法を提供する(例えば、ファイルdataについて).txtにコンテンツ:SET KEY0 VALUE0
    SET KEY1 VALUE1
    SET KEY2 VALUE2
    SET KEY3 VALUE3
    SET KEY4 VALUE4 ...
    -を書き込む、redisクライアントを起動するときにコマンドcat data.txt | redis-cli--pipe-を使用してdataを作成する.txtファイルのコマンドはすべてredisに実行され、非常に高速です.
  • 一括操作の実現原理-ファイル中のコマンドをクライアントに渡す-クライアントがコマンドを取得すると同時に文を解析する-すべてのコマンドの転送が終了すると、クライアントはサービス側にランダムな20ビットの文字列を送信する-最後のコマンドの送信が完了すると、クライアントはサービス側から返された結果をこの20ビットの文字列と一致させ始め、一致に成功すれば、このクライアントが送信したすべてのコマンドを表す
  • が正常に実行されました.