3

グリーンフィールドプロジェクトを開始しています。その中に、有効期限のあるQUEUEが必要です。だから私はキーを追加し、そのアイテムは..言う..20分で期限切れになります。

かなりの行列が予想されます。有効期限が異なる数万のキー。

すぐにServiceStack.Redisともちろん Redisを使用することを考えました:)

これまでのところ、これは でホストされることを願っていAppHarbor + RavenDb + RedisToGoます。Redis Key は RavenDb Id になります。(文字列 - などusers/1など)

質問

  1. SS.Redis を利用して、有効期限のあるアイテムを redis キューに追加できますか? (私は、はい、と仮定しています。たとえば、typedClient.ExpiresAt(..))
  2. RedisToGo をクラウド ホスト型 redis プロバイダーとして活用し、SS.Redis をクライアントとして使用できますか? (繰り返しますが、イエスとイエスを想定しています)
  3. アイテムの有効期限が切れたら、REST GET または POST を URL に実行させることはできますか? - 有効期限を「処理」できますか? (わからない)。
4

2 に答える 2

3
  1. redisでは、リスト/セット/ハッシュ/などの個々のアイテムではなく、有効期限を持つのはキーです。単一のキューがある場合 (Redis 用語のリストであり、異なる端でのプッシュ/ポップであると想定しています)、有効期限は同じキュー内のすべてのアイテムに適用されます。アイテムごとの有効期限を許可するリスト (など) の適切な比喩は実際にはありません。率直に言って、おそらく最も簡単な方法は、論理的な有効期限をペイロードに含めて、期限切れのアイテムをポップするときに破棄することです。

  2. クライアントは選択したポートを介してサーバーにアクセスできるため、特定のクライアントとサーバー/プロバイダーに関係なく、問題はありません。しかし、これらのサービスがある場合、これを確認するのはおそらく簡単です。

  3. 現時点で Redis には有効期限トリガー機能は含まれていませんが、これは提案されており、(一見) 2.8 リリースで受け入れられています (ここでの議論を参照)。redis自体は URL への投稿を行いませんが、仮想的には、イベント チャネルでリッスンし、コードでそれを行うことができます。

しかし、再び、キーとアイテムの有効期限の問題に戻ります。

于 2012-12-17T12:05:43.673 に答える