23

node.jsを使用してWebサービスを作成しています。一部のデータに対してAPIを呼び出しますが、APIによって月あたりの呼び出し数に制限されているため、APIから取得したデータをキャッシュしてサービスを提供したいと考えています。キャッシュされたデータを使用して、一定の間隔でAPIからデータを再フェッチします。

これはこの問題に対する良いアプローチですか?そして、どのキャッシングフレームワークを使用する必要がありますか?node-redisを見ましたが、キー値ストアがデータに適しているとは思いません。

ありがとう!

4

1 に答える 1

39

Redisに関しては同意しません。Redisは非常に強力なKey-Valueストアであり、必要なものに簡単に使用できます。物を捨ててまた取り出すように設計されています。状況によっては、クエリをキーとしてRedisに保存することでAPI応答を簡単にキャッシュでき(これが呼び出しているREST APIの場合は、URLまたはシリアル化されたデータをキーとして使用できます)、単純にキャッシュします文字列化されたJSONオブジェクト(または、取得している場合はXML文字列)としての応答。

キャッシュされたデータに有効期限を設定することもでき、期限が切れるとデータはクリアされます。

次に、API呼び出しを、キャッシュをチェックし、存在する場合は値を返すヘルパー関数でラップできます。そうでない場合は、APIリクエストを作成し、それをキャッシュに追加してから返します。

これはおそらく最も簡単な解決策であり、ユースケースをかなりうまくカバーしているようです。

于 2013-03-25T06:20:29.007 に答える