、Redisのコンセプト
Redisのは、Cベースの言語開発のNoSQLデータベースです。
データがメモリに保存されています。
データは、キーと値のペアの形式で格納されます。
UTF-8エンコーディングのデフォルトを使用します。
第二に、データの一般的に使用されるタイプ5
1.String
2.hash
3.list
4.set
5.sortedSet
第三に、有効期限ポリシー
Redisのは、メモリに基づいており、我々は何が起こるかの範囲を超えてメモリにRedisのはRedisのにデータを追加した場合、メモリは、限定されていますか?回答:一部のデータが削除されます。
最も一般的な除去の戦術、allkeys-LRUをRedisの:メモリが鍵空間で書かれている新しいデータを収容するのに十分でない場合には、最低使用キーを(これは最も一般的です)削除
第四に、説明書:1つのターンのもの:マルチ2.コミットトランザクション:EXEC
原則の実装:オープン情勢は、マルチ、実行されたすべてのコマンドは先入れ先出しで、クライアントは事務の状態にある場合のexecコマンドが実行されると、その後、クライアント・サーバ保存されたトランザクション・キューに基づいて、トランザクション・キューに入ります(FIFO)最後に実行されたコマンドに最初に実行される最初のチームオーダーに、そして最後のチーム:トランザクションキューコマンドを実行する方法。
第五に、永続化メカニズム
1.RDB(デフォルト):Redisのは、ディスクに書き込まれたデータセットのメモリのスナップショット間隔指定された時間内に子プロセスに別々の(フォーク)を作成します。
利点:1.RDBは、複数のデータファイルを生成し、各データファイルはRedisの内の特定の瞬間を表すデータです。
Redisのメインプロセスは非常に子プロセスがRDBの永続性へのディスク入出力操作を実行することとすることができる、唯一の子プロセスをフォーク必要とするためのRedisは、高い性能を維持可能2.非常に小さな外部のRedisが提供するリーダーサービスへの影響、。
3. AOF相対永続化メカニズムは、ダイレクトベースのRDBのデータファイルは、再起動して復元するRedisのは、より迅速に処理します。
欠点:1.RDBは最後の持続性をもたらすことができる重要なデータの損失が生じ、完了することができません。
AOF :.ログの形態の1は、各書き込み動作を記録し、Redisの(読み込み操作が記録されていない)appendonly.aofファイルに書き込まれ、持続時間はeverysec、常にするように構成することができる、無記録されている全てのライトコマンドを実行しました
長所:AOFはより良いデータが失われることはありません保護することができ、AOFは通常、一度バックグラウンドスレッドのfsyncによって行われる1秒毎に、(非同期)操作は、データが失われますほとんどの1秒
欠点:1.AOFファイルが大きくなり、より大きなAOFドキュメント・ソリューションを提供します、Redisのは、自動的に現在のデータのRedisメモリに基づいて、新たな最小書き込み動作を生成するために、ファイル・AOFの再ます。
RDBより遅い2.AOF回復。
スレッドモード:IO多重化:. 1「マルチプレックスは、」同じスレッドを再利用することをいいます。マルチチャネルI / O多重化は、(ネットワークIOに費やされる時間を最小限にするために)効率的に接続要求を複数の処理を単一のスレッドを可能にします
ファイルイベントディスパッチャ:関連するトランザクションプロセッサソケットを操作するクライアントによっては。注:これはシングルスレッドのRedisであるように、ファイルには、シングルスレッドのイベントディスパッチャの作業は、であるため、
なぜ、シングルスレッドモデルが効率的に非常に高いことができますRedisの?
1.簡潔なコマンド式。
2.メモリ操作、O(1)の時間複雑。
前記コアは、非ブロッキングIO多重化メカニズムに基づいています。
代わり4、シングルスレッドマルチスレッド回避問題を切り替える頻繁文脈。