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にコンテンツ: 一括操作の実現原理-ファイル中のコマンドをクライアントに渡す-クライアントがコマンドを取得すると同時に文を解析する-すべてのコマンドの転送が終了すると、クライアントはサービス側にランダムな20ビットの文字列を送信する-最後のコマンドの送信が完了すると、クライアントはサービス側から返された結果をこの20ビットの文字列と一致させ始め、一致に成功すれば、このクライアントが送信したすべてのコマンドを表す が正常に実行されました.
二、事務:
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に実行され、非常に高速です.