Redis統合-クイック・スタート

5023 ワード

Redis統合-クイック・スタート
  • Redis概要
  • Redis持続化
  • RDB永続化:
  • AOF持続化:
  • Redisデータ構造操作コマンド
  • stringタイプ
  • hashタイプ
  • listタイプ
  • setタイプ
  • zsetタイプ
  • 接続コマンド
  • キーコマンド
  • Redis構築主従
  • Redis構築クラスタ
  • Redisの概要
    Redisは非関係型データベース(NoSQL)であり、SQL構文はサポートされず、独自のapiと構文があり、メモリベースの高性能key-value型データベースであり、データの持続化をサポートし、メモリ内のデータをディスクに保存し、再起動時にロードし、プライマリ・スレーブ・モードをサポートする.
    Redis持続化
    RDB永続化とAOF永続化の2つの永続化方式があります.
    RDB持続化:
    現在のメモリのデータセットのタイミングスナップショットをディスクに書き込む
    利点:1.バックアップとディザスタリカバリが容易(dump.rdbファイル);           2.redisメインプロセスforkは、永続化作業を完了するためにサブプロセスを生成する.           3.AOFよりも大量のデータセットのリカバリが高速です.
    欠点:1.定期的にバックアップを行い、redisが予期せぬdownになった場合、まだディスクに書き込まれていないためデータが失われます.           2.forkのサブプロセスでは、リアルタイムで永続化することはできません.
    AOF持続化:
    書き込み、削除の各操作をログ形式で記録します(1秒あたりの同期、変更ごとの同期、および非同期の3つの同期ポリシー).
    利点:1.データが失われないように保護します.           2.書き込み中にハングアップが発生しても、ログファイルにすでに存在するコンテンツは破壊されません.
    欠点:1.大量のデータセットの回復はRDBより遅い.           2.AOFの動作効率はRDBより遅くなることが多い.
    Redisデータ構造操作コマンド
    Redisはkey-valueとしてデータ格納され、string、hash、list、set、zsetの5つのデータ型をサポートします.
    stringタイプ
    文字列タイプは、JPEG画像データやJsonオブジェクト記述情報など、任意のフォーマットのデータをサポートできるRedisの中で最も基本的なデータ型であり、最大512 Mのデータ長を格納できる.
    キー値の設定:(設定したキーが存在しない場合は追加、設定したキーが存在する場合は変更)
    set key value 
    

    キー値と有効期限を秒単位で設定します.
    setex key seconds value
    

    複数のキー値を設定:
    mset key1 value1 key2 value2 ...
    

    追加値:
    append key value 
    

    キーに基づいて値を取得:(存在しない場合はnilを返します)
    get key
    

    複数のキーに基づいて複数の値を取得します.
    mget key1 key2 ...
    

    hashタイプ
    オブジェクトを格納するために使用されます.オブジェクトの構造は属性、値、値のタイプはstringです.
    個々のプロパティの設定
    hset key field value
    

    複数のプロパティの設定
    hmset key field1 value1 field2 value2 ...
    

    指定したキーのすべてのプロパティを取得
    hkey2 key
    

    属性の値を取得
    hget key field
    

    複数の属性の値を取得
    hmget key field1 field2 ...
    

    すべての属性の値を取得
    hvals key
    

    hashのプロパティを取得するには
    hlen key
    

    属性を削除すると、属性に対応する値が一緒に削除されます.
    hdel key field1 field2 ...
    

    リストタイプ
    リストの要素タイプはstringで、挿入順にソートされます.
    左にデータを挿入
    lpush key value2 value ...
    

    右側にデータを挿入
    rpush key value1 value2 ...
    

    指定した要素の前後に新しい要素を挿入
    linsert key before   after         
    

    リストで指定した範囲内の要素を取得
    lrange key start stop
    //start、stop        
    //       ,      0
    //       ,         , -1        
    

    インデックスの場所を指定する要素値の設定
    lset key index value
    //       ,      0
    //       ,         , -1        
    

    指定した要素を削除
    lrem key count value
    //count>0:       count      value
    //count<0:       count      value
    //count=0:         value
    

    setタイプ
    setタイプは無秩序集合であり、要素はstringタイプであり、要素は一意性を有し、重複せず、集合に対して変更操作はない.
    要素を追加
    sadd key member1 member2 ...
    

    すべての要素を取得
    smembers key
    

    指定した要素を削除
    srem key value
    

    zsetタイプ
    zsetタイプ(sorted set)は秩序化された集合であり、要素はstringタイプであり、要素は重複せず、各要素はdoubleタイプのscoreに関連付けられ、重みを表し、重みによって要素を小さいものから大きいものに並べ替え、変更されていない操作である.
    要素を追加
    zadd key score1 member1 score2 member2 ...
    

    指定した範囲内の要素の取得
    zrange key start stop
    //start、stop        (       (score)   )
    //       ,      0
    //       ,         , -1        
    //
    

    score値のminとmaxの間の要素を取得
    zrangebyscore key min max
    

    メンバーのscore値の取得
    zscore key member
    

    指定した要素を削除
    zrem key member1 member2 ...
    

    指定した範囲の重みを持つ要素を削除
    zremrangebyscore key min max
    

    接続コマンド
    redisデータベースへの接続
    redis-cli -h(ip  ) -p(   ) (--raw)
    //--raw,      
    

    キーコマンド
    検索キー、パラメータが正規表現をサポート
    key2 pattern
    //keys *,     
    

    キーが存在するかどうかを判断する
    exists key1
    //      1,     0
    

    キーに対応するvalueのタイプを表示します.redisでサポートされている5つのタイプの1つです.
    type key
    

    削除キーと対応する値
    del key1 key2 ...
    

    有効期限を秒単位で設定
    expire key seconds 
    //               ,  del  
    

    有効時間を秒単位で表示
    ttl key
    

    Redis構築主従
    主従モードを構築することによって読み書き分離を実現し、masterはデータを書くために使用され、slaveはデータを読むために使用され(統計:ウェブサイトの読み書き比率は10:1)、1つのmasterは複数のslaveを持つことができ、1つのslaveは1つは複数のslaveを持つことができる.
    Redis構築クラスタ
    クラスタは、互いに独立した高速ネットワークを介して相互接続されたコンピュータのセットであり、それらはグループを構成し、単一システムのモードで管理される.クラスタ構成は、可用性とスケーリング性を向上させるために使用され、要求が来るとまず負荷等化サーバによって処理され、要求を別のサーバに転送する.Redisクラスタは、データをマスターノードに存在させ、そのマスターと対応するsalveとの間でデータ同期を行います.データを読み出すと、コンシステンシハッシュアルゴリズムに基づいて対応するmasterノードにもデータが取得される.対応するsalveノードが起動するのは、1つのmasterがオフになってからのみです.masterとして機能するには、3つ以上のプライマリノードが必要です.そうしないと、クラスタを作成できません.また、生存するプライマリノードが合計ノードの半分未満になると、クラスタ全体がサービスを提供できません.