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

SpringBootでRedisを操作する方法

May 26, 2023 pm 12:25 PM
redis springboot

オプション 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

すべてのデータをRedisでクリーニングする方法 すべてのデータをRedisでクリーニングする方法 Apr 10, 2025 pm 05:06 PM

すべてのRedisデータをクリーニングする方法:Redis 2.8以降:Flushallコマンドはすべてのキー価値ペアを削除します。 Redis 2.6以前:delコマンドを使用してキーを1つずつ削除するか、Redisクライアントを使用してメソッドを削除します。代替:Redisサービスを再起動し(注意して使用)、またはRedisクライアント(flushall()やflushdb()など)を使用します。

Redisのさまざまなインスタンスがどのように通信するか Redisのさまざまなインスタンスがどのように通信するか Apr 10, 2025 pm 05:15 PM

Redisインスタンスの間に通信にはいくつかのメカニズムがあります。Pub/Sub:Publish/Sub Mode、効率的で低遅延のメッセージングを可能にします。クラスターモード:分散展開方法。高可用性とフォールトトレランスを提供します。クロスインスタンスコマンド:一時的な運用または管理目的に適したコマンドを別のインスタンスに直接送信できるようにします。

Redisクラスターを再起動する方法 Redisクラスターを再起動する方法 Apr 10, 2025 pm 05:18 PM

Redisクラスターの再起動の手順は、次のとおりです。データとログを閉じてクリアします。シードノードを起動します。新しいクラスターを作成します。残りのノードを追加します。クラスターステータスを確認します。

Redisコマンドを再起動する方法 Redisコマンドを再起動する方法 Apr 10, 2025 pm 05:21 PM

Redisは、スムーズな再起動とハード再起動の2つの方法で再起動できます。サービスを中断せずにスムーズに再起動し、クライアントが操作を継続できるようにします。ハード再起動はすぐにプロセスを終了し、クライアントがデータを切断してデータを失います。深刻なエラーを修正するか、データをクリーンアップする必要がある場合にのみ、ほとんどの場合、スムーズな再起動を使用することをお勧めします。

現在のRedisバージョンを表示する方法 現在のRedisバージョンを表示する方法 Apr 10, 2025 pm 05:09 PM

このガイドには、現在のRedisバージョンを決定する2つの方法があります。情報コマンドを使用してバージョン番号を取得します。 -versionオプションを使用して、バージョン番号を直接表示します。バージョン番号は、メインバージョン番号、セカンダリバージョン番号、および改訂番号で構成されており、それぞれメジャーバージョンの更新、機能拡張、マイナーバグ修正を表します。

Redisでマルチスレッドを実装する方法 Redisでマルチスレッドを実装する方法 Apr 10, 2025 pm 05:12 PM

Redisは、リアクターモード、スレッドプール、内部マルチスレッドメカニズムを巧みに組み合わせてマルチスレッドを実装し、それによりマルチコアCPUを効果的に利用し、スループットの改善、リソースの利用の最適化、低レイテンシの維持、スケーラビリティの向上、さまざまな負荷ニーズを満たします。

Redisトランザクションの処理方法 Redisトランザクションの処理方法 Apr 10, 2025 pm 05:24 PM

Redisトランザクションは、原子性、一貫性、分離、および持続性(酸)特性を確保し、次のように動作します。トランザクションを開始:マルチコマンドを使用します。レコードコマンド:任意の数のredisコマンドを実行します。コミットまたはロールバックトランザクション:execコマンドを使用してトランザクションをコミットするか、廃棄コマンドを使用してトランザクションをロールバックします。コミット:エラーがない場合、execコマンドはトランザクションをコミットし、すべてのコマンドがデータベースに原子的に適用されます。ロールバック:エラーが発生した場合、Disdardコマンドがトランザクションをロールバックし、すべてのコマンドが破棄され、データベースのステータスは変更されません。

Redisクラスターはどのように実装されていますか Redisクラスターはどのように実装されていますか Apr 10, 2025 pm 05:27 PM

Redis Clusterは、Redisインスタンスの水平拡張を可能にする分散展開モデルであり、ノード間通信、ハッシュスロット部門キースペース、ノード選挙、マスター奴隷レプリケーション、コマンドリダイレクトを通じて実装されます。ハッシュスロット:キースペースをハッシュスロットに分割して、キーの責任ノードを決定します。ノード選挙:少なくとも3つのマスターノードが必要であり、選挙メカニズムを通じて1つのアクティブマスターノードのみが保証されます。マスタースレーブレプリケーション:マスターノードはリクエストの書き込みを担当し、スレーブノードはリクエストとデータレプリケーションを読む責任があります。コマンドリダイレクト:クライアントはキーを担当するノードに接続し、ノードは誤ったリクエストをリダイレクトします。トラブルシューティング:障害検出、オフラインのマーク、および再

See all articles