問題

私は、データベースの読み取り操作を避けるために、Node.jsアプリケーションでキャッシュを使用する予定です。それはほんの少量のデータです(毎回データベースから同じデータを読み取るのではなく)。私は各サーバーにローカルキャッシュを持つことを計画しています。 ノードキャッシュ( https://www.npmjs.com/package/node-cache )またはRedisに行く必要がありますか?

どちらが速く効率的になりますか?

  ベストアンサー

将来アプリケーションのスケーリングを計画する場合は、redisを選択します。

これが単なる小さなプロジェクトであれば、パフォーマンスを向上させる必要があります。

スターターとして、私はin-memoryキャッシュを使うことをお勧めしますが、コントロールメカニズムの逆転を使用して、redisを使用した後でこのようなものを簡単にリファクタリングできるようにします。このようなことを試してみてください:

 // cache service

module.exports = (provider) => {
   // provider here is an abstraction of redis or in memory node
   // implement your logic

   const save = (key, item) => {
     provider.save(key, item);
     // return promise callback etc
   }    

   const getItem = (key) => {
      provider.get(key);
   } 

   return {
     save,
     getItem,
   }
}
 

そして、必要なプロバイダを使用するだけで、コードを簡単にリファクタリングできます。アプリ内のすべてのファイルを変更する必要はありません。

  同じタグがついた質問を見る

node.jscachingredis