[redis Combat 1] SpringBoot2.0 は Redis カスタム インジェクション Bean コンポーネント構成を統合します

要約: Redis については、多くの友人がすでにそれについて聞いたことがあると思います。さらに、彼らはすでにそれを多くのプロジェクトに適用しています。そうです、これは現在業界で最も広く使用されているキャッシュ ミドルウェアの 1 つであり、最高のものの 1 つであると考えられます。この記事から、SpringBoot2.0 統合に基づいたマイクロサービス プロジェクトの基礎を築きます。そして真ん中を開く Redisの実戦道!

内容:この記事では、まずSpringBoot2.0で構築したプロジェクトをベースにキャッシュミドルウェアRedisを統合し、プロジェクトにRedisに関する共通設定情報を追加し、Redisに注入するテンプレート操作部品StringRedisTemplateとRedisTemplateをカスタマイズしていきます。簡単なデモを作成して、Redis の実戦の旅を始めましょう!

(1) もちろん、最初のステップは、以下に示すように、ミドルウェア Redis の依存 Jar を追加することです。

        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.3.3.RELEASE</version>
        </dependency>
次に、ホストやポートなどの基本情報を含む、Redis の共通の関連構成情報を構成ファイル application.properties に追加します。ここでは、  次の
#redis 单机配置
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
 
spring.redis.jedis.pool.min-idle=100
spring.redis.jedis.pool.max-idle=300
spring.redis.jedis.pool.max-active=500
 
#集群配置
#spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382
この設定ファイルでは、「接続プール」という概念も追加しました。このうち、接続プールで使用可能な接続の最小数は 100、使用可能な最大接続数は 300 です。動的に拡張できるため、最終的にはアクティブなリンクの数を 500 に増やす予定です。(500 が足りない場合は、ブロックして待つ必要があります。待機中に時間がデフォルト設定のタイムアウト時間を超えると、接続リセットまたは接続エラーと同様のエラーが報告されます。)

(2) 次に、統合して構築したプロジェクトを元に、Redisに注入した運用テンプレートコンポーネント、主にStringRedisTemplateとRedisTemplateをカスタマイズしていきます。

Spring+SpringMVC+Mybatis 統合プロジェクトなどの従来の Java Web プロジェクトでは、JedisUtil ツール クラスは通常、Jedis に基づいて直接カプセル化されており、これは DB データベースを操作するための以前の JDBCUtil の使用と似ていることに言及する価値があります。欠陥は非常に明らかです (リンクを手動で作成する必要がある、リンク リソースを閉じる必要があるなど)。

SpringBoot の出現により、「設定よりも規約が優先される」「起動時の依存関係」などの利点がもたらされ、これまで手動でリンクを作成したり閉じたりするなど、リソースを消費する可能性のある多くの操作が節約されます。つまり、SpringBoot に直接組み込まれています。 Redis. 開始依存関係が真ん中にあり、Redis をより便利に操作するために、SpringBoot は StringRedisTemplate と RedisTemplate という 2 つのテンプレート操作部品を直接カプセル化して提供します。以下に示すように、この 2 つのテンプレート操作部品をカスタム インジェクトします。その他のシリアル化に関する関連戦略:

/**
 * @EnableCaching:开启缓存(注解生效的)
 * redis的操作组件自定义注入配置
 **/
@Configuration
@EnableCaching
public class RedisConfig {
 
    @Autowired
    private RedisConnectionFactory connectionFactory;
 
    @Bean
    public RedisTemplate redisTemplate(){
        RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory);
        //设置序列化策略
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
 
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
 
    @Bean
    public StringRedisTemplate stringRedisTemplate(){
        StringRedisTemplate stringRedisTemplate=new StringRedisTemplate();
        stringRedisTemplate.setConnectionFactory(connectionFactory);
        return stringRedisTemplate;
    }
}

おすすめ

転載: blog.csdn.net/wufaqidong1/article/details/131396081