web-dev-qa-db-ja.com

Redisキャッシュとメモリの直接使用

私はまだRedisを使用していませんが、それについて聞いて、キャッシュ保存として試してみる予定です。

キャッシュストアデータベースとしてメモリを使用するRedisを聞いたので、データを格納するオブジェクトまたは辞書データ型として変数を使用する場合の違いは何ですか?好む:

var cache = {
    key: {

    },
    key: {

    }
    ...
}

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

108
hh54188

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

  • Redisは、アプリケーションのすべてのプロセスからアクセスできます。複数のノードで実行されている可能性があります(ローカルメモリが達成できないもの)。

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

  • Redisは、必要に応じてディスク上のデータを保持できます。

  • Redisは、単なるキャッシュ以上の機能を備えています。さまざまなデータ構造、さまざまなアイテム削除ポリシー、ブロッキングキュー、pub/sub、原子性、Luaスクリプトなどを提供します。

  • Redisは、高可用性を実装するために、マスター/スレーブメカニズムを使用してアクティビティを複製できます。

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

181
Didier Spezia