2017-09-06 4 views
2

私はリレーショナルデータベースからクエリデータをキャッシュするためにRedisを使用しているアプリケーションを持っています。レディセットの空のセットを表す

データのフェッチを実行すると、まずRedisで結果キャッシュをチェックし、Redisにエントリがある場合はその結果を返します。それ以外の場合、キャッシュされた結果が見つからない場合は、データベースに対してクエリを実行し、その結果をRedisに保存します。

データベースから空の結果をキャッシュすることもできます。 Redisの中の空のセットを表すための最良の方法は何ですか、現在、私は空のセットを表すためにデータベースに0の
値を格納しています:

Set<Integer> handleNullCaseSet = new HashSet<>(); 
     handleNullCaseSet.add(0); 

を任意のより良い解決策はありますか?

+0

すべてのレコードに対してセットを作成していますか? Redisにデータを保存する方法を理解するために、サンプルデータを共有していただけますか? –

答えて

1

Redisの空のセットを表すには、空のセットを表すためにセンチネル値を使用する必要があります.Redisのセットが空の場合、キーは再利用されます。あなたのソリューションは現在、値ゼロを使用してこれを実行していますが、より良い方法はありません。

詳細については、this answerを参照してください。

+0

実際のクイズマスターでは、あなたが言ったように(センチネル値として0を使って)同じことをやっています。彼は私が推測するより良い解決策を探しています。 –

+0

私は自分の答えを編集して、何らかのソリューションが何らかのセンチネル値を使用しなければならないことを明確にしました。うまくいけばそれはより意味をなさない。 –

関連する問題