前のコースの知識
1.ディスクのパフォーマンス要因に影響を与えます。
アドレッシング:MS
帯域幅:G / M
2.メモリ
アドレッシング:NS
帯域幅を:大規模な
フル10W回に取り組むよりもディスク・メモリ
3のI / Oバッファ:コスト
ディスクと銃剣部門、部門512バイト、大きな--->インデックスのコスト持参
4Kデータの最小のために働きかけ4Kオペレーティングシステム、私は読みどんなに、すべてのディスクを
4は尋ねました:
4.1、より大きなファイル、スローダウンしている。なぜ?
これはよく知られている必要があります:ハードディスクIOは最大のボトルネックである
4.2、より大きなデータベーステーブル、パフォーマンスの低下?
遅い変更するには、インデックス、追加および削除の空室状況に
一つまたはクエリの数が少ない高速のままです。(インデックス構造関連)
同時時間の形式になりますハード帯域幅が影響を受けます。
Redisの過去と現在
1、発生するシナリオを実現するためには避けられない表示されますRedisの。
memcachedのと比較して2、
memcachedを:単純にKV、フォーカス、値は種類の概念ではありません。クライアントにデータ値のすべてを返却する必要がある、経験豊富なサーバーNIC IOは、彼の獲得論理データを実現するために、クライアントを必要とします。
値のRedisのは、データ型の富を提供、プロセスの効率を改善し、異なるデータ構造を処理します。
フォーカスをノック:モバイルデータにコンピューティング(現在よく理解されていません)
Redisのインストール
リファレンス。。
Redisの原則
JVMは、1M、メモリ消費量についてのコストをスレッド
よりスレッド、スケジューリングのコストを増加させ、CPUの廃棄物は、
Redisのシングルスレッドプロセスの単一のインスタンスであります
IOの進化
オペレーティングシステムを含む、それはまだ十分に理解し吸収されません。
> IOは、多重化(選択) -改善された歴史>のepoll(仮想メモリマッピングは、メモリ部を共有)の- - >同期は非ブロックNIO簡単に言えば、それは同期ブロックBIOからの要求です。
それぞれの変更がなされ、現在改善の欠点に基づいています。
スレッドモデルのRedis
参考中国フペルジン先生は、絵を描く画像記述を比較します
ファイルのイベントハンドラ
采用 IO多路复用机制 同时监听多个 socket,根据 socket上的事件 来选择对应的 事件处理器 来处理这个事件。
ソケットは、複数のIO多重化プログラム、ファイル・イベント・ディスパッチャ、イベントプロセッサ(プロセッサコマンド要求、コマンドプロセッサ、プロセッサ接続応答などを返信):コンフィギュレーションファイルイベントプロセッサは、4つの部分を含んでいます。
ソケットの複数のそれぞれ異なるイベント・ファイルに対応し、異なる同時動作を有することができるが、プログラムは、ソケットを多重IO複数を監視しますが、ソケットがキュー内のキューに配置され、キューがそれぞれから除去されソケットにイベントディスパッチャは、ソケットイベントディスパッチャプロセッサは、イベントに対応します。
クライアントのRedisと通信するためのプロセス
在redis启动初始化的时候,redis会将连接应答处理器跟AE_READABLE事件关联起来,接着如果一个客户端跟redis发起连接,此时会产生一个AE_READABLE事件,然后由连接应答处理器来处理跟客户端建立连接,创建客户端对应的socket,同时将这个socket的AE_READABLE事件跟命令请求处理器关联起来。
当客户端向redis发起请求的时候(不管是读请求还是写请求,都一样),首先就会在socket产生一个AE_READABLE事件,然后由对应的命令请求处理器来处理。这个命令请求处理器就会从socket中读取请求相关数据,然后进行执行和处理。
接着redis这边准备好了给客户端的响应数据之后,就会将socket的AE_WRITABLE事件跟命令回复处理器关联起来,当客户端这边准备好读取响应数据时,就会在socket上产生一个AE_WRITABLE事件,会由对应的命令回复处理器来处理,就是将准备好的响应数据写入socket,供客户端来读取。
命令回复处理器写完之后,就会删除这个socket的AE_WRITABLE事件和命令回复处理器的关联关系。
ネットワークの要素があるので、要求でクライアントとの唯一の保証は順序であるRedisの。
バイナリの安全をRedisの
需要对所有客户端进行 编码的约定,防止出现乱码
Redisのタイプ
文字列型
タイプを保存することができます
-
ストリング
- シーン:
-
数の
- 共通コマンド:INCR
- シーン:
購入、スパイクは、親指。カウント制限。
-
ビットマップ
- 一般的なコマンド:setbit、BITCOUNT、bitops、bitop
- シーン:
- 統計ユーザーは数日間ログオン、およびランダム窓
setbit sean 1 1 setbit sean 7 1 setbit sean 364 1 STRLEN sean BITCOUNT sean -2 -1
-
効果的なアクティブユーザ統計
setbit 20190101 1 1 setbit 20190102 1 1 setbit 20190102 7 1 bitop or destkey 20190101 20190102 BITCOUNT destkey 0 -1
-
- 統計ユーザーは数日間ログオン、およびランダム窓
リスト
注文した
シーン:
+スタック
+キュー
+ LINDEX取得:配列
+閉塞、ユニキャストFIFOキュー
ハッシュ
HashMapの同様に、便利な操作のためのオブジェクトの属性
シナリオ:
親指、コレクション
セットする
カオス
シーン:
共通の関心事、ラッフル(賞品少数の人々 、少数の人々とより多くの賞品)
ソートセット
シーン:
ソート
実現:skiplist(ジャンプテーブル)