SpringBootでRedisを操作する方法
オプション 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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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