RedisTemplateの基本的な使い方

4276 ワード

RedisTemplateを使用してRedisデータ構造にアクセスする方法


 

Redisデータ構造の概要


Redisは、String(文字列)、List(リスト)、Set(集合)、Hash(ハッシュ)、Zset(整列集合)の5つの異なるデータ構造タイプとの間のキーのマッピングを格納することができる.
この5つのデータ構造タイプについて簡単に説明します.
構造タイプ
構造ストレージの値
構造の読み書き能力
String
文字列、整数または浮動小数点数
文字列または文字列の一部全体に対して操作を実行します.オブジェクトと浮動小数点数の自己増加(increment)または自己減少(decrement)
List
チェーンテーブルの各ノードに文字列が含まれているチェーンテーブル
チェーンテーブルの両端から要素をプッシュまたはポップアップします.オフセット量に基づいてチェーンテーブルをトリミングする(trim);単一または複数の要素を読み込みます.値に基づいて要素を検索または削除
Set
文字列を含む無秩序コレクタ(unorderedcollection)であり、含まれる各文字列はユニークで異なる
単一の要素を追加、取得、削除します.エレメントがコレクションに存在するかどうかを確認します.交差、並列、差分セットを計算します.コレクションからランダムに要素を取得する
Hash
キー値ペアを含む無秩序分散リスト
単一のキー値ペアを追加、取得、削除します.すべてのキー値ペアを取得
Zset
文字列メンバー(member)と浮動小数点数スコア(score)の間の秩序マッピング、要素の配列順序はスコアのサイズによって決定されます
単一の要素を追加、取得、削除します.要素は、スコア範囲(range)またはメンバーに基づいて取得されます.
Redis 5種のデータ構造の概念は概ねこちらに紹介されているが,SpringパッケージのRedisTemplateと組み合わせてこの5種のデータ構造の運用を実証する
 

RedisTemplateの紹介


SpringはRedisTemplateオブジェクトをカプセル化してredisに対する様々な操作を行い,すべてのredisオリジナルapiをサポートする.
RedisTemplateのspringコードの構造は次のとおりです.
org.springframework.data.redis.core
Class RedisTemplate
java.lang.Object
    org.springframework.data.redis.core.RedisAccessor
        org.springframework.data.redis.core.RedisTemplate

Type Parameters:        K
  • the Redis key type against which the template works(usually a String)テンプレートのRedis keyのタイプ(通常String)例えば、RedisTemplate注意:特別な状況がなければ、RedisTemplateとして定義しないでください.そうしないと、リース置換の原則に基づいて、使用するときにタイプエラーが発生します.V
  • the Redis value type against which the template worksテンプレートのRedis valueのタイプ
  •  
     

    RedisTemplateでは、5つのデータ構造に対する操作が定義されています。

     
  • redisTemplate.opsForValue();//
  • redisTemplate.opsForHash();// hash
  • redisTemplate.opsForList();// list
  • redisTemplate.opsForSet();// set
  • redisTemplate.opsForZSet();// set

  •  

    StringRedisTemplateとRedisTemplate

  • の の はStringRedisTemplateがRedisTemplateを することである.
  • のデータは していない.つまりStringRedisTemplateはStringRedisTemplateの のデータしか できず、RedisTemplateはRedisTemplateの のデータしか できません.
  • SDRのデフォルトで されるシーケンス ポリシーには、Stringのシーケンス ポリシーとJDKのシーケンス ポリシーの2つがあります.StringRedisTemplateのデフォルトではStringのシーケンス ポリシーが され、 されたkeyとvalueはこのポリシーでシーケンス されて されます.RedisTemplateのデフォルトはJDKのシーケンス ポリシーで、 したkeyとvalueはこのポリシーでシーケンス されて されます.

  • RedisTemplateの は のとおりです.
    @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory)
        {
            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
            ObjectMapper om = new ObjectMapper();
            om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            jackson2JsonRedisSerializer.setObjectMapper(om);
            RedisTemplate template = new RedisTemplate();
            template.setConnectionFactory(redisConnectionFactory);
            template.setKeySerializer(jackson2JsonRedisSerializer);
            template.setValueSerializer(jackson2JsonRedisSerializer);
            template.setHashKeySerializer(jackson2JsonRedisSerializer);
            template.setHashValueSerializer(jackson2JsonRedisSerializer);
            template.afterPropertiesSet();
            return template;
        }
    

    RedisのStringデータ (StringRedisTemplateの を )


    :RedisTemplateを する は、シーケンス を する があります.
     
            RedisSerializer stringSerializer = new StringRedisSerializer();
            template.setKeySerializer(stringSerializer );
            template.setValueSerializer(stringSerializer );
            template.setHashKeySerializer(stringSerializer );
            template.setHashValueSerializer(stringSerializer );