Redis-第8章-シーンの適用


目次

  • 概要
  • 詳細
  • 1、概要


    Redisは、String(文字列)、Hash(ハッシュ)、List(リスト)、Set(集合)、Zset(秩序集合)の5つのデータ型をサポートします.

    2、詳しく


    1、String(文字列)

    定義:Stringはredisの最も基本的なタイプで、1つのkeyは1つのvalueに対応します.Stringタイプはバイナリで安全です.string下位層の実装は単純な動的文字列sdsであるため、文字列を修正することができる.
    適用シーン:単一キャッシュ、オブジェクトキャッシュ、分散ロック、通常カウント(ファン数、コメント数)、分散セッション共有、分散グローバルシーケンス番号.
    具体的な実装:
      set key value
      get key
      set user:1 value(json    )
      mset user:1:name tsingli user:1:balance 1888
      mget user:1:name user:1:balance
      incr article:readcount:{  id}
      get article:readcount:{  id}
      incrby orderid 1000  # redis           
      #     
        1: setnx product:1001 true #   1       
        2: setnx product:1001 true #   0       
      。。。      
      del product:1001               #         
      set product:1001 true ex 10 nx #             
     
     #   
        setnx product:1001 true
             1.    1001   
             2.   
             3.                
        del product:1001

    setnx挿入したkeyのようにデータに操作がない場合、2回目に在庫を減算するとエラーが返されます.
    2、Hash(ハッシュ)

    定義:Hashはキー値ペアの集合です.彼はjavaの二重mapに相当する.>.適用シーン:カート.具体的な実装:
      #   :
        #   id 1001,      10088。
        #   id key,  id field,     value。
        
      #   :
         #     :
            hset cart:1001 10088 1
         #     :
            hincrby cart:1001 10088 1
         #     :
            hlen cart:1001
         #     :
            hdel cart:1001 10088
         #          :
            hgetall cart:1001

    3、List(リスト)

    定義:リストは単純な文字列リストで、挿入順にソートされ、リストのヘッダーまたは末尾に要素を追加できます.適用シーン:Stack( )= LPUSH + LPOP -> FILO // Queue( )= LPUSH + RPOP // Blocking MQ( )= LPUSH + BRPOP // .具体的な実装:
      #      ,  id 10018
          lpush msg:111111 10018
      #        ,  id 10086
          lpush msg:111111 10086
      #         
          lrange msg:11111 0 5 //0 5     。

    4、Set(集合)

    定義:Setはstringタイプの無秩序な集合です.応用シーン:微信抽選ウィジェット、 、 、 、注目モデルは、認識可能な人の関係である.具体的な実装:
      #           
          sadd key {userId}
      #            
          smembers key
      #   count    (1) // srandmember           
          srandmember key [count] //        srandmember act:1008 2
      #   count    (2) // SPOP          
          spop key 2
    、 、 :
      #   
        sadd like:{  ID} {  id}
      #     
        srem like:{  ID} {  id}
      #          
        sismember like:{  ID} {  id}
      #          
        smembers like:{  ID}
      #         
        scard like:{  ID}

    5、Zset(秩序集合)

    定義:zsetはsetと同様にstringタイプ要素の集合であり、重複するメンバーは許可されません.異なるのは、各要素にdobuleタイプのスコアが関連付けられていることです.redisは、スコアによって集合メンバーを小さいものから大きいものにソートし、zsetのメンバーは一意ですが、スコアは繰り返します.