回答:
Redisはリモートデータ構造サーバーです。データをローカルメモリに格納するよりも確かに遅くなります(データをフェッチ/格納するためにソケットの往復が含まれるため)。ただし、いくつかの興味深いプロパティもあります。
Redisはアプリケーションのすべてのプロセスからアクセスでき、複数のノードで実行されている可能性があります(ローカルメモリでは実現できないもの)。
Redisのメモリストレージは非常に効率的で、別のプロセスで実行されます。メモリがガベージコレクションされたプラットフォーム(node.js、javaなど)でアプリケーションを実行すると、はるかに大きなメモリキャッシュ/ストアを処理できます。実際には、非常に大きなヒープは、ガベージコレクションされた言語ではうまく機能しません。
Redisは、必要に応じてデータをディスクに保持できます。
Redisは単純なキャッシュではなく、さまざまなデータ構造、さまざまなアイテムの削除ポリシー、ブロッキングキュー、pub / sub、原子性、Luaスクリプトなどを提供します...
Redisは、高可用性を実装するために、マスター/スレーブメカニズムでアクティビティを複製できます。
基本的に、同じデータを共有する複数のノードでアプリケーションをスケーリングする必要がある場合は、Redis(または他のリモートキー/値ストア)のようなものが必要になります。
very large heaps do not perform well with garbage collected languages
、その理由を説明できますか?
現在、各リクエストが別のコンテナーに移動できるサーバーレスアーキテクチャーがより魅力的です。この場合、redisは非常に重要な役割を果たすことができます。
シンプルキャッシュが格納されているのと同じコンテナでリクエストが処理されることを確認できないため、サーバーレスでシンプルキャッシュを使用することはできません。
この場合、リモートロケーションにキャッシュを保存するため、redisを使用する必要があります。サーバーレスアーキテクチャではコンテナーの変更にもアクセスできます。