Redis Redis Template使用概要

86464 ワード

Redis Redis Template使用概要
RedisのStringデータ構造
  • void set(K key, V value);
  • redisTemplate.opsForValue().set("num","123");
    redisTemplate.opsForValue().get("num")       123
    
  • void set(K key, V value, long timeout, TimeUnit unit);
  • redisTemplate.opsForValue().set("num","123",10, TimeUnit.SECONDS);
    redisTemplate.opsForValue().get("num")    10   ,         ,       null
    
  • void set(K key, V value, long offset); 所与のkeyに格納文字列値を上書き(overwrite)し、オフセットoffsetから
  • を開始する.
    template.opsForValue().set("key","hello world");
    template.opsForValue().set("key","redis", 6);
    System.out.println("***************"+template.opsForValue().get("key"));***************hello redis
    
  • V getAndSet(K key, V value); キーの文字列値を設定し、古い値
  • を返します.
    template.opsForValue().set("getSetTest","test");
    System.out.println(template.opsForValue().getAndSet("getSetTest","test2"));
      :test
    
  • Integer append(K key, String value); キーが既に存在し、文字列である場合、コマンドはその値を文字列の末尾に追加します.キーが存在しない場合は、空の文字列として作成され、設定されるため、APPENDはこの場合、SETと同様になります.
  • template.opsForValue().append("test","Hello");
    System.out.println(template.opsForValue().get("test"));
    template.opsForValue().append("test","world");
    System.out.println(template.opsForValue().get("test"));
    Hello
    Helloworld
    

    RedisのListデータ構造
  • Long size(K key);キーに格納されているリストの長さを返します.キーが存在しない場合は、空のリストとして解釈し、0を返します.keyが格納した値がリストでない場合にエラーが返されます.
  • System.out.println(template.opsForList().size("list"));
    6
    
  • Long leftPush(K key, V value); キーのリストに格納されているすべての値を挿入します.キーが存在しない場合は、プッシュ操作を実行する前に空のリストとして作成します.(左から挿入)
  • template.opsForList().leftPush("list","java");
    template.opsForList().leftPush("list","python");
    template.opsForList().leftPush("list","c++");
                     
    1
    2
    3
    
  • Long leftPushAll(K key, V… values); リストに1つの配列を一括して挿入する
  • String[] strs = new String[]{
         "1","2","3"};
    template.opsForList().leftPushAll("list",strs);
    System.out.println(template.opsForList().range("list",0,-1));
    [3, 2, 1]
    
  • Long rightPush(K key, V value); キーのリストに格納されているすべての値を挿入します.キーが存在しない場合は、プッシュ操作を実行する前に空のリストとして作成します.(右から挿入)
  • template.opsForList().rightPush("listRight","java");
    template.opsForList().rightPush("listRight","python");
    template.opsForList().rightPush("listRight","c++");
    1
    2
    3
    
  • Long rightPushAll(K key, V… values);
  • String[] strs = new String[]{
         "1","2","3"};
    template.opsForList().rightPushAll("list",strs);
    //range   0     
    System.out.println(template.opsForList().range("list",0,-1));
    [1, 2, 3]
    
  • Long rightPush(K key, V value);
  • template.opsForList().rightPush("listRight","java");
    template.opsForList().rightPush("listRight","python");
    template.opsForList().rightPush("listRight","c++");
    1
    2
    3
    
  • Long rightPushAll(K key, V… values);
  • String[] strs = new String[]{
         "1","2","3"};
    template.opsForList().rightPushAll("list",strs);
    System.out.println(template.opsForList().range("list",0,-1));
    [1, 2, 3]
    
  • void set(K key, long index, V value); リスト内のindexの位置にvalue値
  • を設定する
    System.out.println(template.opsForList().range("listRight",0,-1));
    template.opsForList().set("listRight",1,"setValue");
    System.out.println(template.opsForList().range("listRight",0,-1));
    [java, python, oc, c++]
    [java, setValue, oc, c++]
    
  • Long remove(K key, long count, Object value); キーに格納されたリストから値に等しい要素の最初のカウントイベントを削除します.カウントパラメータは、count> 0:最初から最後まで移動した値に等しい要素を削除します.count <0:末尾から移動した値に等しい要素を削除します.count = 0:valueに等しいすべての要素を削除します.
  • System.out.println(template.opsForList().range("listRight",0,-1));
    template.opsForList().remove("listRight",1,"setValue");//                   “setValue”。
    System.out.println(template.opsForList().range("listRight",0,-1));
    [java, setValue, oc, c++]
    [java, oc, c++]
    
  • V index(K key, long index); 下の表から取得するリストの値は、0から始まる
  • です.
    System.out.println(template.opsForList().range("listRight",0,-1));
    System.out.println(template.opsForList().index("listRight",2));
    [java, oc, c++]
    c++
    
  • V leftPop(K key); 一番左の要素がポップアップされ、ポップアップ後、この値はリストに
  • は存在しません.
    System.out.println(template.opsForList().range("list",0,-1));
    System.out.println(template.opsForList().leftPop("list"));
    System.out.println(template.opsForList().range("list",0,-1));
    [c++, python, oc, java, c#, c#]
    c++
    [python, oc, java, c#, c#]
    
  • V rightPop(K key); 一番右の要素がポップアップされ、ポップアップ後、この値はリストに
  • は存在しません.
    System.out.println(template.opsForList().range("list",0,-1));
    System.out.println(template.opsForList().rightPop("list"));
    System.out.println(template.opsForList().range("list",0,-1));
    [python, oc, java, c#, c#]
    c#
    [python, oc, java, c#]
    

    RedisのHashデータ機構
  • Long delete(H key, Object… hashKeys); 指定されたハッシュhashKeys
  • を削除
    System.out.println(template.opsForHash().delete("redisHash","name"));
    //entries        
    System.out.println(template.opsForHash().entries("redisHash"));
    1
    {
         class=6, age=28.1}
    
  • Boolean hasKey(H key, Object hashKey); ハッシュhashKeyが
  • 存在するかどうかを決定する
    System.out.println(template.opsForHash().hasKey("redisHash","666"));
    System.out.println(template.opsForHash().hasKey("redisHash","777"));
    true
    false
    
  • Object get(H key, Object hashKey);
  • System.out.println(template.opsForHash().get("redisHash","age"));
    26
    
  • Set keys(H key); keyに対応するハッシュリストを取得するkey
  • System.out.println(template.opsForHash().keys("redisHash"));
    //redisHash        {class=1, name=666, age=27}
    [name, class, age]
    
  • Long size(H key); 取得keyに対応するハッシュリストのサイズ個数
  • System.out.println(template.opsForHash().size("redisHash"));
    //redisHash        {class=1, name=666, age=27}
    3
    
  • void putAll(H key, Map extends HK, ? extends HV> m); mで指定する複数のハッシュフィールドを使用してkeyに対応するハッシュテーブルの
  • に設定する.
    Map<String,Object> testMap = new HashMap();
    testMap.put("name","666");
    testMap.put("age",27);
    testMap.put("class","1");
    template.opsForHash().putAll("redisHash1",testMap);
    System.out.println(template.opsForHash().entries("redisHash1"));
    {
         class=1, name=jack, age=27}
    
  • void put(H key, HK hashKey, HV value); ハッシュhashKeyの値
  • を設定
    template.opsForHash().put("redisHash","name","666");
    template.opsForHash().put("redisHash","age",26);
    template.opsForHash().put("redisHash","class","6");
    System.out.println(template.opsForHash().entries("redisHash"));
    {
         age=26, class=6, name=666}
    
  • List values(H key)は、鍵
  • に従ってハッシュ全体の格納値を取得する.
    System.out.println(template.opsForHash().values("redisHash"));
    [tom, 26, 6]
    
  • Map entries(H key); ハッシュストレージ全体を取得鍵
  • に従って
    System.out.println(template.opsForHash().entries("redisHash"));
    {
         age=26, class=6, name=tom}
    
  • Cursor> scan(H key, ScanOptions options); Cursorを使用してkeyのhashで反復し、反復器に相当します.
  • Cursor<Map.Entry<Object, Object>> curosr = template.opsForHash().scan("redisHash", 
      ScanOptions.ScanOptions.NONE);
        while(curosr.hasNext()){
         
            Map.Entry<Object, Object> entry = curosr.next();
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
    age:27
    class:6
    name:666
    

    RedisのSetデータ構造
  • Long add(K key, V… values); 無秩序な集合に要素を追加し、追加個数を返すaddに直接複数の値を追加することもできます:template.opsForSet().add(“setTest”,“aaa”,“bbb”)
  • String[] strs= new String[]{
         "str1","str2"};
    System.out.println(template.opsForSet().add("setTest", strs));
    2
    
  • Long remove(K key, Object… values); コレクションから1つ以上のメンバーを削除する
  • String[] strs = new String[]{
         "str1","str2"};
    System.out.println(template.opsForSet().remove("setTest",strs));
    2
    
  • V pop(K key); セット内のランダム要素
  • を除去して戻す
    System.out.println(template.opsForSet().pop("setTest"));
    System.out.println(template.opsForSet().members("setTest"));
    bbb
    [aaa, ccc]
    
  • Boolean move(K key, V value, K destKey); メンバー要素をsourceコレクションからdestinationコレクション
  • に移動する
    template.opsForSet().move("setTest","aaa","setTest2");
    System.out.println(template.opsForSet().members("setTest"));
    System.out.println(template.opsForSet().members("setTest2"));
    [ccc]
    [aaa]
    
  • Long size(K key); 無秩序集合のサイズ長さ
  • System.out.println(template.opsForSet().size("setTest"));
    1
    
  • Set members(K key); コレクション内のすべてのメンバー
  • を返します.
    System.out.println(template.opsForSet().members("setTest"));
    [ddd, bbb, aaa, ccc]
    
  • Cursor scan(K key, ScanOptions options); set
  • を巡る
    Cursor<Object> curosr = template.opsForSet().scan("setTest", ScanOptions.NONE);
      while(curosr.hasNext()){
         
         System.out.println(curosr.next());
      }
    ddd
    bbb
    aaa
    ccc
    

    RedisのZSetデータ構造
  • Boolean add(K key, V value, double score); 秩序化された集合が追加され、存在する場合false、存在しない場合true
  • System.out.println(template.opsForZSet().add("zset1","zset-1",1.0));
    true
    
  • Long add(K key, Set tuples); 新しい順序付き集合
  • ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<>("zset-5",9.6);
    ZSetOperations.TypedTuple<Object> objectTypedTuple2 = new DefaultTypedTuple<>("zset-6",9.9);
    Set<ZSetOperations.TypedTuple<Object>> tuples = new HashSet<ZSetOperations.TypedTuple<Object>>();
    tuples.add(objectTypedTuple1);
    tuples.add(objectTypedTuple2);
    System.out.println(template.opsForZSet().add("zset1",tuples));
    System.out.println(template.opsForZSet().range("zset1",0,-1));
    [zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
    
  • Long remove(K key, Object… values); 1つまたは複数の要素
  • を整列集合から除去する.
    System.out.println(template.opsForZSet().range("zset1",0,-1));
    System.out.println(template.opsForZSet().remove("zset1","zset-6"));
    System.out.println(template.opsForZSet().range("zset1",0,-1));
    [zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
    1
    [zset-1, zset-2, zset-3, zset-4, zset-5]
    
  • Long rank(K key, Object o); 順序セットの指定メンバーの順位を返します.順序セットのメンバーは、小数点以下から大きい順に
  • に並べられます.
    System.out.println(template.opsForZSet().range("zset1",0,-1));
    System.out.println(template.opsForZSet().rank("zset1","zset-2"));
    [zset-2, zset-1, zset-3, zset-4, zset-5]
    0   //      
    
  • Set range(K key, long start, long end); 指定した区間内のメンバーは、インデックス区間から戻る順序セットで合成され、順序セットメンバーは、小数点以下から大きい順に
  • に並べられる.
    System.out.println(template.opsForZSet().range("zset1",0,-1));
    [zset-2, zset-1, zset-3, zset-4, zset-5]
    
  • Long count(K key, double min, double max); 指定区間内のメンバー数
  • をスコアで返す.
    System.out.println(template.opsForZSet().rangeByScore("zset1",0,5));
    System.out.println(template.opsForZSet().count("zset1",0,5));
    [zset-2, zset-1, zset-3]
    3
    
  • Long size(K key); 秩序化された集合のメンバー数を取得し、内部呼び出しはzCardメソッド
  • である.
    System.out.println(template.opsForZSet().size("zset1"));
    6
    
  • Double score(K key, Object o); 指定したメンバーのscore値
  • を取得
    System.out.println(template.opsForZSet().score("zset1","zset-1"));
    2.2
    
  • Long removeRange(K key, long start, long end); 指定したインデックス位置のメンバーを削除します.ここで、整列セットのメンバーは、小数点以下から大きい順に
  • に並べられます.
    System.out.println(template.opsForZSet().range("zset2",0,-1));
    System.out.println(template.opsForZSet().removeRange("zset2",1,2));
    System.out.println(template.opsForZSet().range("zset2",0,-1));
    [zset-1, zset-2, zset-3, zset-4]
    2
    [zset-1, zset-4]
    
  • Cursor scan(K key, ScanOptions options); zset
  • を巡る
    Cursor<ZSetOperations.TypedTuple<Object>> cursor = template.opsForZSet().scan("zzset1", ScanOptions.NONE);
        while (cursor.hasNext()){
         
           ZSetOperations.TypedTuple<Object> item = cursor.next();
           System.out.println(item.getValue() + ":" + item.getScore());
        }
    zset-1:1.0
    zset-2:2.0
    zset-3:3.0
    zset-4:6.0
    

    リファレンス