ホームページ > データベース > Redis > SpringBootでRedisを操作する方法

SpringBootでRedisを操作する方法

PHPz
リリース: 2023-05-26 12:25:14
転載
1796 人が閲覧しました

オプション 1: Spring Data Redis 作成プロジェクト

プロジェクトを作成し、Redis 依存関係を導入します:

SpringBootで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>
ログイン後にコピー

この自動構成クラスは理解しやすいです:

  1. まず、これを構成クラスとしてマークします。この構成は、RedisOperations が存在する (つまり、Spring Data Redis がプロジェクトに導入されている) 場合にのみ有効になります。

  2. 次に、アプリケーションにインポートして構成します。プロパティ プロパティ

  3. 次に、接続プール情報 (存在する場合) をインポートします。

  4. 最後に、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 つのタイプに分類できます。

  1. キーの操作。関連するメソッドは RedisTemplate にあります

  2. For 特定のデータの場合型操作を行う場合、関連するメソッドはまず対応するデータ型を取得する必要があります。対応するデータ型を取得するための操作メソッドは opsForXXX

です。データを Redis に保存するにはこのメソッドを呼び出します。

SpringBootで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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート