Spring Boot を使用して Redis に基づいた分散セッション キャッシュを迅速に構築する方法
May 27, 2023 pm 08:49 PM
redis
session
spring boot
Spring Boot を使用して、Redis に基づく分散セッション キャッシュ ソリューションを迅速に構築します
大規模な Web アプリケーションでは、セッション管理が非常に重要ですが、単一マシンのストレージでは満足できません。
通常、次の 1 つの方法があります:
セッションをデータベースに永続化します。ただし、欠点は、読み取りと書き込みのコストが高すぎることです。
- #セッション解除 (情報は Cookie に保存されます。ただし、サイズが制限されており、安全ではないという欠点があります。
#Maven コアの依存関係を追加する spring-session-data-redis
<!--基于redis的分布式session存储--> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
ログイン後にコピー
Configure application.properties ファイルの Redis 接続プロパティ
###### Redis config start ###### spring.redis.database=0 spring.redis.host=192.168.41.60 spring.redis.port=6379 spring.redis.password= spring.redis.pool.max-active=20 spring.redis.pool.max-wait=-1 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.timeout=0 ###### Redis config end ######
ログイン後にコピー
ステップ 2: @EnableRedisHttpSession アノテーションを開く
@Configuration @EnableRedisHttpSession(redisNamespace = "mysession",maxInactiveIntervalInSeconds = 60*60*24) public class SessionConfig
ログイン後にコピー
- maxInactiveIntervalInSeconds: セッション内のデータの有効期限 (Redis のセッションの有効期限ではありません)
- ##私の構成では、現在のアプリケーションを識別するために使用される "mysession" という名前の名前空間を指定しました。
- redisFlushMode: Redis がセッションを保存する方法、デフォルトの ON_SAVE には 2 つの方法があります:
- IMMEDIATE
: セッションが作成されたら、すぐに保存します。
ON_SAVE: セッションの作成時には保存されませんが、データの追加時に保存されます。セッションへの接続ステップ 3: テスト@Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @Target({ java.lang.annotation.ElementType.TYPE }) @Documented @Import(RedisHttpSessionConfiguration.class) @Configuration public @interface EnableRedisHttpSession int maxInactiveIntervalInSeconds() default 1800; String redisNamespace() default ""; RedisFlushMode redisFlushMode() default
ログイン後にコピー
@RestController
public class HelloController
@RequestMapping("/hello/{username}")
public String hello(HttpSession session, @PathVariable(value = "username") String username) {
session.setAttribute("username", username);
return "保存session到Redis成功";
}
@RequestMapping("/getName")
public String getUsername(HttpSession session) {
String username = (String) session.getAttribute("username");
return
ログイン後にコピー
ブラウザがリンク http://localhost:8080/ にアクセスしたときhello/admin の場合、hello メソッドはブラウザのパラメータによって渡されたリンクを受け取り、それらをセッションに保存し、セッションを Redis に保存します。Redis で情報を表示すると、次の情報を確認できます。spring:session が自動的に追加されます。作成された名前空間 mysession は、このデフォルト ディレクトリの下にあります。次に、http://localhost:8080/getName にアクセスします。ブラウザーに、先ほどセッションで保存した admin## が表示されることがわかります。@RestController public class HelloController @RequestMapping("/hello/{username}") public String hello(HttpSession session, @PathVariable(value = "username") String username) { session.setAttribute("username", username); return "保存session到Redis成功"; } @RequestMapping("/getName") public String getUsername(HttpSession session) { String username = (String) session.getAttribute("username"); return
ログイン後にコピー
以上がSpring Boot を使用して Redis に基づいた分散セッション キャッシュを迅速に構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

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

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

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

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

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

ホットトピック
Gmailメールのログイン入り口はどこですか?
7287
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



Windows 11 10.0.22000.100 のインストール時の 0x80242008 エラーの解決策

erlang と golang ではどちらのパフォーマンスが優れていますか?
