RedisTemplateの最も完全な常用方法の総括

13742 ワード

Redisでよく使用されるデータ型:

  • String

  • Hash

  • List

  • Set

  • zSet

  • Sorted set


  •  

    Stringタイプ


    keyに対応する値があるかどうかを判断し、ある場合はtrueを返し、ない場合はfalseを返す
    redisTemplate.hasKey(key)
    

    ある場合key値に対応する値を取り出す
    redisTemplate.opsForValue().get(key)
    

    個々のkey値の削除
    redisTemplate.delete(key)
    

    一括削除key
    redisTemplate.delete(keys) //  keys:Collection keys
    

    現在入力されているkey値をbyte[]タイプにシーケンス化
    redisTemplate.dump(key)
    

    有効期限の設定
    public Boolean expire(String key, long timeout, TimeUnit unit) {
        return redisTemplate.expire(key, timeout, unit);
     }
     public Boolean expireAt(String key, Date date) {
        return redisTemplate.expireAt(key, date);
      }

    一致するkey値を検索し、Setセットタイプを返します.
    public Set getPatternKey(String pattern) {
        return redisTemplate.keys(pattern);
    }

    redisのkeyの名前を変更する
     public void renameKey(String oldKey, String newKey) {
        redisTemplate.rename(oldKey, newKey);
    }

    受信keyに格納された値のタイプを返します.
    public DataType getKeyType(String key) {
        return redisTemplate.type(key);
    }

    古い値が存在する場合は、古い値を新しい値に変更します.
    public Boolean renameOldKeyIfAbsent(String oldKey, String newKey) {
        return redisTemplate.renameIfAbsent(oldKey, newKey);
    }

    redisからkeyをランダムに取り出す
    redisTemplate.randomKey()
    

    現在のkeyに対応する残りの有効期限を返します
     public Long getExpire(String key) {
        return redisTemplate.getExpire(key);
    }

    残りの有効期限を返し、時間単位を指定します.
    public Long getExpire(String key, TimeUnit unit) {
        return redisTemplate.getExpire(key, unit);
    }

    キーの永続化を保存
    public Boolean persistKey(String key) {
        return redisTemplate.persist(key);
    }

    現在のデータベースのkeyを指定したredis内のデータベースに移動
    public Boolean moveToDbIndex(String key, int dbIndex) {
        return redisTemplate.move(key, dbIndex);
    }

    現在のkeyおよびvalue値の設定
    redisTemplate.opsForValue().set(key, value)
    

    現在のkeyおよびvalue値を設定し、有効期限を設定します.
    redisTemplate.opsForValue().set(key, value, timeout, unit)
    

    キーの文字列を返すサブ文字
    public String getCharacterRange(String key, long start, long end) {
        return redisTemplate.opsForValue().get(key, start, end);
    }

    古いキーをvalueに設定し、古いキーを返します.
    public String setKeyAsValue(String key, String value) {
        return redisTemplate.opsForValue().getAndSet(key, value);
    }

    一括取得値
     public List multiGet(Collection keys) {
        return redisTemplate.opsForValue().multiGet(keys);
     }

    既存の値に基づいて文字列を末尾に追加
    redisTemplate.opsForValue().append(key, value)
    

    変数にdouble値をインクリメンタルで格納
     public Double incrByDouble(String key, double increment) {
        return redisTemplate.opsForValue().increment(key, increment);
     }

    increment(K key,long delta)法によりlong値を増分的に格納する(正の値は自己増加し、負の値は自己減少する)
    public Long incrBy(String key, long increment) {
        return redisTemplate.opsForValue().increment(key, increment);
    }

    対応するmapコレクション名が存在しない場合は、追加しないと変更されません.
    Map valueMap = new HashMap();  
    valueMap.put("valueMap1","map1");  
    valueMap.put("valueMap2","map2");  
    valueMap.put("valueMap3","map3");  
    redisTemplate.opsForValue().multiSetIfAbsent(valueMap); 

    mapコレクションをredisに設定
    Map valueMap = new HashMap();  
    valueMap.put("valueMap1","map1");  
    valueMap.put("valueMap2","map2");  
    valueMap.put("valueMap3","map3");  
    redisTemplate.opsForValue().multiSet(valueMap);  

    文字列の長さの取得
    redisTemplate.opsForValue().size(key)
    

    valueパラメータで所与のkeyに格納された文字列値を上書きし、オフセット量offsetから開始する
    redisTemplate.opsForValue().set(key, value, offset)

    keyに対応する値を再設定し、falseが存在する場合はtrueを返します.
    redisTemplate.opsForValue().setIfAbsent(key, value)

    値valueをkeyに関連付け、keyの有効期限をtimeoutに設定します.
    redisTemplate.opsForValue().set(key, value, timeout, unit)
    

    バイナリoffsetビット値をvalueに変更
    redisTemplate.opsForValue().setBit(key, offset, value)

    keyに格納された文字列値に対して、指定されたオフセット量のビットを取得する(bit)
    redisTemplate.opsForValue().getBit(key, offset)

    Hashタイプ


    Redis hashはstringタイプのfieldとvalueのマッピングテーブルであり、hashは特にオブジェクトを格納するのに適している.Redis内の各hashは2^32−1キー値対(40億以上)を格納することができる.
    変数の指定したmapキーに値があるかどうかを取得し、そのmapキーが存在する場合は値を取得し、存在しない場合はnullを返します.
    redisTemplate.opsForHash().get(key, field)

    変数のキー値ペアの取得
    public Map hGetAll(String key) {
        return redisTemplate.opsForHash().entries(key);
    }

    新しいhashMap値
    redisTemplate.opsForHash().put(key, hashKey, value)
    

    mapセットとしてキー値ペアを追加
    public void hPutAll(String key, Map maps) {
        redisTemplate.opsForHash().putAll(key, maps);
    }

    hashKeyが存在しない場合のみ設定
    public Boolean hashPutIfAbsent(String key, String hashKey, String value) {
        return redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);
    }

    1つ以上のhashテーブルフィールドを削除
    public Long hashDelete(String key, Object... fields) {
        return redisTemplate.opsForHash().delete(key, fields);
    }

    hashテーブルに指定されたフィールドが存在するかどうかを表示
    public boolean hashExists(String key, String field) {
        return redisTemplate.opsForHash().hasKey(key, field);
    }

    ハッシュ・テーブルkeyの指定したフィールドの整数値にインクリメンタルincrementを加算
    public Long hashIncrBy(String key, Object field, long increment) {
        return redisTemplate.opsForHash().increment(key, field, increment);
    }
     public Double hIncrByDouble(String key, Object field, double delta) {
        return redisTemplate.opsForHash().increment(key, field, delta);
    }

    すべてのhashテーブルのフィールドを取得
    redisTemplate.opsForHash().keys(key)

    hashテーブルのフィールド数の取得
    redisTemplate.opsForHash().size(key)
    

    hashテーブルに存在するすべての値を取得
    public List hValues(String key) {
        return redisTemplate.opsForHash().values(key);
    }

    一致取得キーの値のペア、ScanOptions.NONEはすべてのキーペアを取得する
    public Cursor> hashScan(String key, ScanOptions options) {
        return redisTemplate.opsForHash().scan(key, options);
    }

    Listタイプ


    インデックスによるリスト内の要素の取得
    redisTemplate.opsForList().index(key, index)
    

    リスト指定範囲内の要素を取得します(start開始位置、0は開始位置、end終了位置、-1はすべてを返します)
    redisTemplate.opsForList().range(key, start, end)

    リストのヘッダに格納されます.つまり、一番前のインデックスに追加します.
    redisTemplate.opsForList().leftPush(key, value)

    複数の値をListに格納する(valueは複数の値であってもよいし、1つのCollection valueであってもよい)
    redisTemplate.opsForList().leftPushAll(key, value)

    リストが存在する場合に追加
    redisTemplate.opsForList().leftPushIfPresent(key, value)

    pivotに値がある場合はpivotの前に追加
    redisTemplate.opsForList().leftPush(key, pivot, value)

    先の順序で追加(valueは複数の値、またはCollection var 2)
    redisTemplate.opsForList().rightPush(key, value)
    redisTemplate.opsForList().rightPushAll(key, value)

    pivot要素の右側に値を追加
    redisTemplate.opsForList().rightPush(key, pivot, value)

    指定した索引の要素の値を設定
    redisTemplate.opsForList().set(key, index, value)

    リスト内の最初の要素を削除して取得します(リストに要素がない場合、リストはタイムアウト待ちまたはポップアップ可能な要素が発見されるまでブロックされます).
    redisTemplate.opsForList().leftPop(key)
    redisTemplate.opsForList().leftPop(key, timeout, unit)

    リストの最後の要素を削除して取得
    redisTemplate.opsForList().rightPop(key)
    redisTemplate.opsForList().rightPop(key, timeout, unit)

    あるキューの右側から要素をポップアップし、その要素を別の指定したキューの一番左に配置します.
    redisTemplate.opsForList().rightPopAndLeftPush(sourceKey, destinationKey)
    redisTemplate.opsForList().rightPopAndLeftPush(sourceKey, destinationKey, timeout, unit)

    セット内の値がvalueに等しい要素を削除します(index=0、すべての値がvalueに等しい要素を削除します;index>0、ヘッダーから最初の値がvalueに等しい要素を削除します;index<0、末尾から最初の値がvalueに等しい要素を削除します).
    redisTemplate.opsForList().remove(key, index, value)

    Listリストを切り取る
    redisTemplate.opsForList().trim(key, start, end)

    現在のkeyのリスト長を取得
    redisTemplate.opsForList().size(key)

    Setタイプ


    要素の追加
    redisTemplate.opsForSet().add(key, values)

    要素の除去(単一の値、複数の値)
    redisTemplate.opsForSet().remove(key, values)

    ランダムな要素を削除して返します
    redisTemplate.opsForSet().pop(key)

    コレクションのサイズの取得
    redisTemplate.opsForSet().size(key)

    コレクションにvalueが含まれているかどうかを判断する
    redisTemplate.opsForSet().isMember(key, value)

    2つの集合の交差を取得する(keyに対応する無秩序集合がotherKeyに対応する無秩序集合が交差を求める)
    redisTemplate.opsForSet().intersect(key, otherKey)

    複数のコレクションの交差を取得する(Collection var 2)
    redisTemplate.opsForSet().intersect(key, otherKeys)

    keyコレクションとotherKeyコレクションの交差はdestKeyコレクションに格納されます(otherKeyは単一の値またはコレクションであってもよい).
    redisTemplate.opsForSet().intersectAndStore(key, otherKey, destKey)

    keyコレクションと複数のコレクションの交差はdestKey無秩序コレクションに格納される
    redisTemplate.opsForSet().intersectAndStore(key, otherKeys, destKey)

    2つ以上のコレクションの並列セットを取得します(otherKeysは1つの値またはコレクションです).
    redisTemplate.opsForSet().union(key, otherKeys)

    keyコレクションとotherKeyコレクションの並列セットはdestKeyに格納されます(otherKeysは単一の値またはコレクションであってもよい).
    redisTemplate.opsForSet().unionAndStore(key, otherKey, destKey)

    2つ以上のセットの差分セットを取得します(otherKeysは単一の値またはセットであってもよい).
    redisTemplate.opsForSet().difference(key, otherKeys)

    差分セットはdestKeyに格納されます(otherKeysは単一の値またはセットで使用できます).
    redisTemplate.opsForSet().differenceAndStore(key, otherKey, destKey)

    コレクション内の要素をランダムに取得
    redisTemplate.opsForSet().randomMember(key)

    コレクション内のすべての要素を取得
    redisTemplate.opsForSet().members(key)

    集合内のcount要素をランダムに取得
    redisTemplate.opsForSet().randomMembers(key, count)

    複数のkey無秩序集合の要素(重み付け)を取得し、countは個数を表す
    redisTemplate.opsForSet().distinctRandomMembers(key, count)

    巡回setはInterator(ScanOptions.NONEはすべて表示)に似ています.
    redisTemplate.opsForSet().scan(key, options)

    zSetタイプ


    ZSetOperationsでは、一連の方法で規則化された集合を操作して要素を追加します(規則化された集合は、要素のscore値の小さいものから大きいものまで配列されます).
    redisTemplate.opsForZSet().add(key, value, score)

    対応するvalueを削除します.valueは複数の値にできます.
    redisTemplate.opsForZSet().remove(key, values)

    要素のscore値を増やし、増加した値を返します.
    redisTemplate.opsForZSet().incrementScore(key, value, delta)

    要素のコレクションの順位を返します.順序付きコレクションは、要素のscore値に従って小さいものから大きいものに並べられます.
    redisTemplate.opsForZSet().rank(key, value)

    エレメントのscore値が大きいから小さいまで、エレメントのコレクションの順位を返します.
    redisTemplate.opsForZSet().reverseRank(key, value)

    コレクション内の指定された区間の要素を取得します(start開始位置、end終了位置、-1クエリーすべて)
    redisTemplate.opsForZSet().reverseRangeWithScores(key, start,end)

    Score値に従ってコレクション内の要素をクエリーし、結果を小さいから大きいまでソートします.
    redisTemplate.opsForZSet().reverseRangeByScore(key, min, max)
    redisTemplate.opsForZSet().reverseRangeByScoreWithScores(key, min, max)
    //    :Set>

    上位から下位へのソート・セットから、最小値と最大値の間のスコアの要素を取得します.
    redisTemplate.opsForZSet().reverseRangeByScore(key, min, max, start, end)

    score値に基づいてコレクション要素の数を取得
    redisTemplate.opsForZSet().count(key, min, max)

    コレクションのサイズの取得
    redisTemplate.opsForZSet().size(key)
    redisTemplate.opsForZSet().zCard(key)

    コレクション内のkey、value要素に対応するscore値を取得
    redisTemplate.opsForZSet().score(key, value)

    指定した索引の場所のメンバーの削除
    redisTemplate.opsForZSet().removeRange(key, start, end)

    指定したscore範囲の集合メンバーの削除
    redisTemplate.opsForZSet().removeRangeByScore(key, min, max)

    keyとotherKeyの並列セットを取得しdestKeyに格納します(otherKeysは単一の文字列または文字列の集合であってもよい).
    redisTemplate.opsForZSet().unionAndStore(key, otherKey, destKey)

    keyとotherKeyの交差を取得しdestKeyに格納します(otherKeysは単一の文字列または文字列の集合であってもよい).
    redisTemplate.opsForZSet().intersectAndStore(key, otherKey, destKey)

    巡回集合(iteratorそっくり)
    Cursor> scan = opsForZSet.scan("test3", ScanOptions.NONE);
            while (scan.hasNext()){
                ZSetOperations.TypedTuple item = scan.next();
                System.out.println(item.getValue() + ":" + item.getScore());
            }