Redis はまだ使っていませんが、噂を聞いてキャッシュ保存用に使ってみようと思っています。
Redis はキャッシュ ストア データベースとしてメモリを使用していると聞きましたが、変数をオブジェクトまたは辞書データ型として使用してデータを格納すると、どのような違いがあるのでしょうか? お気に入り:
var cache = {
key: {
},
key: {
}
...
}
Redis にはどのような利点がありますか?
Redis はリモートデータ構造サーバーです。データをローカルメモリに保存するよりも確かに遅くなります(データをフェッチ/保存するためのソケットラウンドトリップが含まれるため)。ただし、いくつかの興味深い特性ももたらします。
Redis はアプリケーションのすべてのプロセスからアクセスでき、おそらく複数のノードで実行されます (ローカル メモリでは実現できないことです)。
Redis のメモリ ストレージは非常に効率的で、別のプロセスで実行されます。メモリがガベージ コレクションされるプラットフォーム (node.js、java など) でアプリケーションが実行されている場合、はるかに大きなメモリ キャッシュ/ストアを処理できます。実際には、非常に大きなヒープは、ガベージ コレクトされた言語ではうまく機能しません。
Redis は、必要に応じてデータをディスクに永続化できます。
Redis は単なるキャッシュではありません。さまざまなデータ構造、さまざまなアイテムの削除ポリシー、ブロッキング キュー、pub/sub、原子性、Lua スクリプトなどを提供します ...
Redis は、高可用性を実装するために、マスター/スレーブ メカニズムでそのアクティビティをレプリケートできます。
基本的に、同じデータを共有する複数のノードでアプリケーションをスケーリングする必要がある場合は、Redis (またはその他のリモート キー/値ストア) のようなものが必要になります。
現在、私たちは、各リクエストが異なるコンテナに送られるサーバーレス アーキテクチャに魅力を感じています。この場合、redis は非常に重要な役割を果たすことができます。
シンプルキャッシュが保存されているコンテナーと同じコンテナーでリクエストが処理されるかどうかを確認できないため、サーバーレスでシンプルキャッシュを使用することはできません。
この場合、リモートの場所にキャッシュを保存するため、redis を使用する必要があります。また、サーバーレス アーキテクチャでのコンテナーの変更にもアクセスできます。