オプション 1: Spring Data Redis 作成プロジェクト
プロジェクトを作成し、Redis 依存関係を導入します:
Created最後に、commos-pool2 の依存関係を手動で導入する必要があるため、最終的な完全な pom.xml 依存関係は次のようになります。
<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> </dependencies> <dependency> <groupid>org.apache.commons</groupid> <artifactid>commons-pool2</artifactid> </dependency>
ここでの主な目的は、Spring Data Redis 接続プールを導入することです。
Redis 情報の設定
次に、Redis の基本情報と接続プール情報の 2 つの側面からなる 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
自動設定
開発者がSpring Data Redisをプロジェクトに導入し、Redisの基本情報を設定すると自動設定が有効になります。
Spring Boot の Redis の自動構成クラスから手がかりがわかります:
@Configuration @ConditionalOnClass(RedisOperations.class) @EnableConfigurationProperties(RedisProperties.class) @Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class }) public class RedisAutoConfiguration { @Bean @ConditionalOnMissingBean(name = "redisTemplate") public RedisTemplate<object> redisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<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; } }</object></object>
この自動構成クラスは理解しやすいです:
まず、これを構成クラスとしてマークします。この構成は、RedisOperations が存在する (つまり、Spring Data Redis がプロジェクトに導入されている) 場合にのみ有効になります。
次に、アプリケーションにインポートして構成します。プロパティ プロパティ
次に、接続プール情報 (存在する場合) をインポートします。
最後に、RedisTemplate と StringRedisTemplate という 2 つの Bean が提供されます。ここで、StringRedisTemplate RedisTemplate のサブクラスです。2 つのメソッドは基本的に同じです。違いは主に、操作の異なるデータ型に反映されます。RedisTemplate の 2 つのジェネリックは両方とも Object です。これは、格納されたキーと値がオブジェクトである可能性があることを意味します。 StringRedisTemplate の 2 つのジェネリックは両方とも String です。つまり、StringRedisTemplate のキーと値は文字列のみにすることができます。これら 2 つの設定は、開発者が関連 Bean を提供しない場合にのみ有効になります。該当するBeanを提供しても有効になりません。
Use
次に、StringRedisTemplate または RedisTemplate をサービスに直接挿入して使用できます。
@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 データ内一般に、操作は次の 2 つのタイプに分類できます。
キーの操作。関連するメソッドは RedisTemplate にあります
For 特定のデータの場合型操作を行う場合、関連するメソッドはまず対応するデータ型を取得する必要があります。対応するデータ型を取得するための操作メソッドは opsForXXX
です。データを Redis に保存するにはこのメソッドを呼び出します。
k1 前の文字は、キーをシリアル化した結果である RedisTemplate の使用によって発生します。
RedisTemplate では、キーのデフォルトのシリアル化スキームは JdkSerializationRedisSerializer です。
StringRedisTemplate では、キーのデフォルトのシリアル化スキームは StringRedisSerializer であるため、StringRedisTemplate を使用する場合、デフォルトではキーの前にプレフィックスはありません。
ただし、次のように、開発者は 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); } }
さらに、 Spring Boot の自動構成では、単一マシン上でのみ Redis を構成できます。Redis クラスターの場合は、すべてを手動で構成する必要があります。Redis クラスターの操作方法については、後で Brother Song が共有します。 。
オプション 2: Spring Cache
Spring Cache を通じて Redis を操作します。Spring Cache はキャッシュの世界を統合します。この種のソリューションは、以前 Brother Song によって使用されていました。記事が紹介されているので、友達はここに移動できます: Spring Boot では、この方法でも Redis キャッシュを使用できます。 。
オプション 3: 元の時代に戻る
3 番目のオプションは、Jedis または他のクライアント ツールを直接使用して Redis を操作することです。このオプションは Spring Boot It で利用できます。操作は面倒ですが対応しています
以上がSpringBootでRedisを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。