183

Redis はまだ使っていませんが、噂を聞いてキャッシュ保存用に使ってみようと思っています。

Redis はキャッシュ ストア データベースとしてメモリを使用していると聞きましたが、変数をオブジェクトまたは辞書データ型として使用してデータを格納すると、どのような違いがあるのでしょうか? お気に入り:

var cache = {
    key: {

    },
    key: {

    }
    ...
}

Redis にはどのような利点がありますか?

4

2 に答える 2

278

Redis はリモートデータ構造サーバーです。データをローカルメモリに保存するよりも確かに遅くなります(データをフェッチ/保存するためのソケットラウンドトリップが含まれるため)。ただし、いくつかの興味深い特性ももたらします。

  • Redis はアプリケーションのすべてのプロセスからアクセスでき、おそらく複数のノードで実行されます (ローカル メモリでは実現できないことです)。

  • Redis のメモリ ストレージは非常に効率的で、別のプロセスで実行されます。メモリがガベージ コレクションされるプラットフォーム (node.js、java など) でアプリケーションが実行されている場合、はるかに大きなメモリ キャッシュ/ストアを処理できます。実際には、非常に大きなヒープは、ガベージ コレクトされた言語ではうまく機能しません。

  • Redis は、必要に応じてデータをディスクに永続化できます。

  • Redis は単なるキャッシュではありません。さまざまなデータ構造、さまざまなアイテムの削除ポリシー、ブロッキング キュー、pub/sub、原子性、Lua スクリプトなどを提供します ...

  • Redis は、高可用性を実装するために、マスター/スレーブ メカニズムでそのアクティビティをレプリケートできます。

基本的に、同じデータを共有する複数のノードでアプリケーションをスケーリングする必要がある場合は、Redis (またはその他のリモート キー/値ストア) のようなものが必要になります。

于 2013-10-21T08:36:18.767 に答える
9

現在、私たちは、各リクエストが異なるコンテナに送られるサーバーレス アーキテクチャに魅力を感じています。この場合、redis は非常に重要な役割を果たすことができます。

シンプルキャッシュが保存されているコンテナーと同じコンテナーでリクエストが処理されるかどうかを確認できないため、サーバーレスでシンプルキャッシュを使用することはできません。

この場合、リモートの場所にキャッシュを保存するため、redis を使用する必要があります。また、サーバーレス アーキテクチャでのコンテナーの変更にもアクセスできます。

于 2018-05-12T17:34:57.723 に答える