注Redisの-1

前のコースの知識

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の進化

LinuxでのIOの進化
オペレーティングシステムを含む、それはまだ十分に理解し吸収されません。
> IOは、多重化(選択) -改善された歴史>のepoll(仮想メモリマッピングは、メモリ部を共有)の- - >同期は非ブロックNIO簡単に言えば、それは同期ブロックBIOからの要求です。
それぞれの変更がなされ、現在改善の欠点に基づいています。

スレッドモデルのRedis

参考中国フペルジン先生は、絵を描く画像記述を比較します
スレッドモデルの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(ジャンプテーブル)

おすすめ

転載: www.cnblogs.com/idea-persistence/p/12581922.html