問題タブ [spring-data-redis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1331 参照

spring-data-redis - Spring-data-redis cache - CustomizeRedisCacheManager を使用すると、データがキャッシュされていてもバックエンド メソッドを呼び出す

Spring-data-redis キャッシュ (1.6.1)、Jredis Client 2.7.3 を使用しています。フェイルオーバーを有効にしたい。redis サーバーがダウンしても、アプリケーションが動作し続けてほしい

1) spring-data xml 構成を使用した場合、redis キャッシュは正常に動作します。バックエンドを呼び出し、データをキャッシュし、2 回目の呼び出しでバックエンドを呼び出しません。ただし、xml 構成を使用してサーバーがダウンしている場合に Redis Exception をキャプチャし、アプリケーションが動作し続けるように null を返す方法がわかりません。十分なドキュメントがありません。(このソリューションは機能しません)

2) Java を使用して redis キャッシュを構成しました。この場合、フェイルオーバーの例外をキャッチできますが、Spring-data-redis は、redis キャッシュが機能している場合でも、バックエンド データベース メソッドを呼び出し続けます。そのため、バックエンド メソッドを呼び出してデータをキャッシュする必要があります。2 番目の呼び出しは、バックエンド データベースに戻るべきではありません。

したがって、すべてのリクエストでバックエンドデータベースメソッドをキャッシュして呼び出しています。

誰かがこの問題に直面したかどうか疑問に思っていました。または、バックエンド Redis サーバーがダウンしている場合に spring-data-redis をフェイルオーバーする方法についてのアイデア。

サンプルコードを添付しました。

ここに AppConfig.java があります

ここに HelloWorldServica.java があります

WelcomeController.java

0 投票する
1 に答える
6198 参照

spring-boot - spring-data-redis で使用する論理データベースを指定する

と Spring Boot を使用spring-data-redisspring-sessionて Redis インスタンスに接続しています。spring-data-redisただし、DB 0 (デフォルト) ではなく、別のローカル データベース (DB 1 など) に接続したいと考えています。これは、セッションを保存したい場所です。これは spring-data-redis で可能ですか?

0 投票する
1 に答える
13453 参照

json - 複数の型を持つネストされたオブジェクトに使用する RedisTemplate ハッシュ値シリアライザー

Redis を使用してエンティティのキ​​ャッシュ データを保存しようとしています。エンティティにはさまざまな種類のフィールドがあります。たとえば、

より多くのフィールドがあり、いくつかのフィールドは他のフィールドよりも頻繁に更新されるため、これjobを各フィールドをキーとして Redis の Hashmap として保存することにしました。ここでは、入れ子になったオブジェクト likejobDefは重要ではないので、for を使用Jackson2JsonRedisSerializerするhashValueSerializerRedisTemplatejobDefobj は長い JSON 文字列としてシリアル化されるだけで、私の場合はまったく問題ありません。

jobしかし、Redis からオブジェクト全体を効果的に逆シリアル化する方法がわかりません。私がデシリアライザーに設定したタイプは似Jackson2JsonRedisSerializer(Map.class)ていますが、文字列のキーと値をデシリアライズするときに文句を言います。

これは無効な使用法RedisTemplateですか、それともシリアライザーをどのように構成する必要がありますか?

編集:コードの詳細を追加し、

2回目の編集:

JdkSerializationRedisSerializerHashValueSerializer として使用すると、逆シリアル化は正常に機能しRedisTemplateますが、これを使用する場合の欠点は、Redis に格納されている値が、 を使用した場合と同じ人間が読み取れる文字列値ではないことJackson2JsonRedisSerializerです。

0 投票する
1 に答える
11898 参照

redis - spring-data-redis 1.7.0.M1 使用時の redis-cluster の設定方法

spring-data-redis バージョン 1.7.0.M1 と jedis バージョン 2.8.0 を使用しています。これが私の構成です

【redisTemplate.opsForValue().get("foo")】を使ってテストする

例外をスローする

spring-data-redis 1.7.0.M1 を使用する場合の redis-cluster の設定方法は?

0 投票する
1 に答える
8860 参照

spring-boot - Spring Boot アプリケーションで 2 番目の RedisTemplate インスタンスを作成する方法

この回答によるとRedisTemplate、値に対して複数のシリアライザーをサポートすることはできません。そのため、さまざまなニーズに合わせて複数の RedisTemplates を作成したいと考えています。具体的には、1 つは文字列アクション用、もう 1 つはオブジェクトから JSON へのシリアライゼーション用で、RedisCacheManager. 私は Spring Boot を使用しており、現在は自動配線されています。同じ Jedis 接続ファクトリを共有しているが、独自のシリアライザーをRedisTemplate持つ 2 番目のインスタンスを宣言する正しい方法は何だろうか?RedisTemplate

2つの異なるコンポーネントでこのようなことを試しましたが、

コンポーネント 1 は次のように宣言します。

コンポーネント 2 は次のように宣言します。

この場合、2 つのテンプレートは実際には同じです。Spring コードをトレースすると、コンポーネント 1 のテンプレートが autoconfigured に解決されていることがわかりましたstringRedisTemplate

RedisTemplateのコンストラクタを手動で呼び出しafterPropertiesSet()ても、接続ファクトリが見つからないと不平を言うため、機能しません。

このリクエストはおそらく、Spring アプリで別の Bean を定義することと大きな違いはないことはわかっていますが、現在の Spring-Data-Redis 統合では、何が最善の方法なのかわかりません。助けてください、ありがとう。

0 投票する
3 に答える
8179 参照

java - Spring Redis ハッシュ操作 SCAN

私はやっていSpring Redisます、私はキーを次のように置きます

から検索したいList<>

また、機能していません。助けてください!!

0 投票する
2 に答える
2141 参照

spring-session - 複数の Spring セッションを同じ redis インスタンスでサポートできますか?

Java Spring で作成された Web アプリケーションがいくつかあり、 と を使用spring-data-redisして@EnableRedisHttpSessionいます。春のセッションの内部構造とは何だろうと思っていました。新しいセッションを作成する前に、redis データベースでセッション キーの重複をチェックしますか?

私は春のドキュメントを見て、グーグル検索もしましたが、決定的な答えを得ることができませんでした.

0 投票する
0 に答える
1640 参照

jedis - Pipeline では Jedis を使用できません。パイプラインを使用するか、jedis の状態をリセットしてください

Spring Data Redis でパイプライン コマンドを実行できません。StringRedisTemplate を使用しています。spring-data-redis 1.6.1、spring boot 1.3.2、および jedis 2.7.3 と 2.8.0 の両方。

コード:

pExpireを実行すると件名に例外で吹きます。リファレンス ガイドで提案されている別のフレーバーを試してみました。

同じ結果です。何か案が?ありがとう