この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14268|答える: 0

[出典] 【実戦】スプリングブート統合 Redis チュートリアル

[リンクをコピー]
掲載地 2019/03/11 16:48:17 | | | |
例外はSpringBootにRedisTemplateインスタンスを注入することで解決されます
https://www.itsvse.com/thread-7224-1-1.html
(出典:Architect_Programmer)
エラー:名前の「stringRedisTemplate」でビーンを生成し、...に定義されています。
https://www.itsvse.com/thread-7225-1-1.html
(出典:Architect_Programmer)

環境:スプリングブート 2.1.1.リリース
pom.xml 参照を追加し、次のように設定します:



application.propertiesで次のように設定します:


spring-boot-starter-data-redis の設定変更について話しましょう
https://www.itsvse.com/thread-7207-1-1.html
(出典:Architect_Programmer)

テストコントローラーを書く:


コントローラーはブラウザ経由でアクセスし、その後redisクライアントでキャッシュを確認します。

spring redisにはStringRedisTemplateとRedisTemplateという2つのテンプレートがあり、これら2つのテンプレートでデータをテストし、itsvseとitsvse2のキー-値ペアを以下のように挿入します。



同じ値を挿入したのですが、値の形式だけでなく鍵生成ルールも異なるのです。(投稿には以下と記載されています)

原理の簡単な分析

RedisTemplateやStringRedisTemplateが使っているシリアライズを見てみてください。

StringRedisTemplateは継承されたRedisTemplateであることがわかります。 次に、文字列のシリアライズメソッドをStringRedisSerializerに設定します。

RedisSerializer.string() ソースコード:


UTF_8 定義:
次に、RedisTemplateのシリアライズコードを見てみよう。デフォルトではJDKのシリアライゼーションメソッドであるJdkSerializationRedisSerializerを使うことがわかる。



ソースコードを照会すると、RedisTemplateはデフォルトでJdkSerializationRedisSerializerをシリアライズに使用し、StringRedisTemplateはStringRedisSerializerを使用しています。

また、注意点:この二つのデータは一般的ではありません; つまり、StringRedisTemplateはStringRedisTemplate内のデータしか管理できず、RedisTemplateはRedisTemplateの中のデータしか管理できません。

これは、テンプレートを通じて加算操作を行い、異なるデータ形式が存在することを説明しています。

シリアライゼーションモードを切り替える

デフォルトのシリアライズ方法を使いたくない場合、fastjsonを使う場合は、Springbootで注入された元のビーンを置き換えるためにRedisTemplateのビーンをカスタマイズする必要があります:



(終わり)




先の:草の根は才能、中間レベルは徳、トップレベルは知性を見ます
次に:Microsoft.Web.Infrastructureソリューションからのファイルやアセンブリの読み込みに失敗しました
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com