春BOOT2シリーズチュートリアル(26)春ブーツ統合のRedis

RedisのはRedisの程度前に、基本的に統一されたスキームをキャッシュする、のRedisと、フレームワークをキャッシュする当社の幅広い前に現れ、歌Geがチュートリアルのシリーズがあり、ない知らRedisの小さなパートナーは、このチュートリアルを参照することができます。

次のように多くの使用のJavaオペレーティングRedisのプログラムは、Jedisは、Jedisに加えて、他の多くのソリューションがありますが、より多くの人気のAプログラムです。

これらのプログラムに加えて、春データのRedisそのプログラムのかなりの数の使用もあります。

接続プール、接続情報と、キーと値の直列化スキーム:伝統的なSSMでは、春データのRedisを設定するには、自分自身を開発する必要性は、この構成では、より多くのは、configure三つの主要なものを複雑にしています。

春ブーツでは、デフォルトでは、開発者は、このようなJedisとして、あなた自身のおなじみのために変更することができ、Redisのは春データのRedis、レタスを使用して接続プールの基礎となるデフォルトで統合されています。

春データのRedis Redisのは、動作テンプレートRedisTemplateのために非常に便利を提供します。春データこれは良いことだ、春データRedisの中の特定の使用状況春ブーツで、次の我々の外観です。

オプション1:春データのRedis

プロジェクトを作成します。

Redisのの導入に依存して、プロジェクトを作成します。

作成したら、最終的な完全な依存のpom.xmlは次のようにして、あなたは、手動で導入commos-POOL2依存する必要があります。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
    </dependency>
</dependencies>

ここでは主に春データのRedis +接続プールを紹介します。

Redisの構成情報

次に、構成情報Redisの情報は、他のプール情報に接続され、二つの側面、基本情報のRedisのいずれかを含みます。

spring.redis.database=0
spring.redis.password=123
spring.redis.port=6379
spring.redis.host=192.168.66.128
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms

自動設定

プロジェクト内の開発者は、春データのRedisを導入し、Redisの基本的な情報を装備する場合は、この時点では、自動化された設定が有効になります。

私たちは、Redisの自動設定クラスに春ブーツから識別することができます。

@Configuration
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
public class RedisAutoConfiguration {
    @Bean
    @ConditionalOnMissingBean(name = "redisTemplate")
    public RedisTemplate<Object, Object> redisTemplate(
                    RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
            RedisTemplate<Object, Object> template = new RedisTemplate<>();
            template.setConnectionFactory(redisConnectionFactory);
            return template;
    }
    @Bean
    @ConditionalOnMissingBean
    public StringRedisTemplate stringRedisTemplate(
                    RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
            StringRedisTemplate template = new StringRedisTemplate();
            template.setConnectionFactory(redisConnectionFactory);
            return template;
    }
}

この自動設定のクラスはよく理解されています。

  1. まず、設定がRedisOperationsの存在下で有効になりながら、これは、マークされたクラス構成である(すなわち、プロジェクトが春データのRedisで導入されました)
  2. そして、属性設定さapplication.propertiesをインポート
  3. そして、接続プール情報(存在する場合)に導入
  4. 最後に、StringRedisTemplateがRedisTemplateサブクラスである2豆、RedisTemplateとStringRedisTemplateは、2つの方法が基本的に同じであり、主な違いは、データ操作の異なるタイプに反映され、RedisTemplateは、一般的な2つの目的でありますこれらの保存されたキーと値の対象とすることができ、一般的な2つのStringRedisTemplateを意味するStringRedisTemplateキーと値は文字列だけすることができた者を意味する文字列です。開発者は、関連するビーンを提供していない場合は、2つの設定が有効になり、それが有効になりません。

使用

次は、サービスRedisTemplate StringRedisTemplate中または使用中に直接注入することができます。

@Service
public class HelloService {
    @Autowired
    RedisTemplate redisTemplate;
    public void hello() {
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("k1", "v1");
        Object k1 = ops.get("k1");
        System.out.println(k1);
    }
}

Redisの中にデータ操作は、一般的に言えば、二つに分けること:

  1. RedisTemplateでの操作キー、および関連する方法については
  2. 操作の特定のデータ型のため、関連する方法は、対応するデータ・タイプを取得する必要があり、操作方法に対応するデータ型がopsForXXXあります

この方法は、次のように行くのRedisにデータを格納するために呼び出すことができます。

K1前の文字は、使用RedisTemplate、シリアライズ後のキーのRedisTemplate結果に起因しています。

RedisTemplateでは、鍵方式は、デフォルトのシーケンスJdkSerializationRedisSerializerです。

StringRedisTemplateでは、デフォルトのキーシーケンス方式はStringRedisTemplate場合ので、デフォルトのプレフィックスキーフロントケースがあるだろう、StringRedisSerializerです。

次のようにしかし、開発者自身が、シーケンスRedisTemplateスキームを変更することができます。

@Service
public class HelloService {
    @Autowired
    RedisTemplate redisTemplate;
    public void hello() {
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("k1", "v1");
        Object k1 = ops.get("k1");
        System.out.println(k1);
    }
}

もちろん、直接StringRedisTemplate使用することができます。

@Service
public class HelloService {
    @Autowired
    StringRedisTemplate stringRedisTemplate;
    public void hello2() {
        ValueOperations ops = stringRedisTemplate.opsForValue();
        ops.set("k2", "v2");
        Object k1 = ops.get("k2");
        System.out.println(k1);
    }
}

また、ノート、自動春ブート設定のみのconfigure Redisのスタンドアロンことができ、Redisのクラスタならば、すべてはRedisのクラスタの操作方法について、独自の手動設定が必要と、ソングのGeその後、あなたと後で共有します。

オプション2:春のキャッシュ

:Redisのは春のキャッシュ、川や湖の春のキャッシュキャッシュ統一ファサードの形で運営され、特別な資料で説明する前に、このようなプログラムは、パートナーができる小さな会場ソングのGeを持っていたブーツ春、Redisのキャッシュがあることを行うことができますがと!

オプション3:元の時代に戻ります

第三の選択肢はので、ここで、操作上の問題が、サポートされていますが、この操作ソングGeの前に提示記事があり、Redisのを操作するJedisまたは他のクライアントツールを直接使用、このプログラムはまた、春のブートでサポートされていますそれらを繰り返すことはしません、あなたが参照できるJedisの使用を

概要

皆のための李Songgeは三つのプログラムをまとめたRedisの操作、春ブーツは、実際には、いくつかの広く使われている直接Jedisまだ比較的小さなを使用して最初の二つは、基本的に春ブーツの誰もが直接そう見たことがありません。

さて、私たちはここで停止し、質疑応答メッセージを残してくださいがあります。

関連例はGitHubのにアップロードされた、小さなお友達は、ダウンロードに歓迎されていますhttps://github.com/lenve/javaboy-code-samples

歌Geのスキャンコード懸念し、公共の数の舞台裏返信2TB、歌Geが排他的な超乾燥2TBフリーのJavaの学習を取得します

おすすめ

転載: www.cnblogs.com/lenve/p/11915332.html