1. ホーム
  2. caching

[解決済み] Redisキャッシュとメモリ直接使用との比較

2022-04-20 15:38:26

質問

Redisはまだ使ったことがないのですが、話を聞いてキャッシュストレージとして使ってみようと思っています。

Redisはメモリをキャッシュストアのデータベースとして使っているそうですが、変数をオブジェクトや辞書のデータ型にしてデータを保存する場合、何が違うのか? みたいな話です。

var cache = {
    key: {

    },
    key: {

    }
    ...
}

Redisにはどんな利点があるのでしょうか?

どのように解決するのですか?

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

  • Redisは、アプリケーションのすべてのプロセス、場合によっては複数のノードで動作しているプロセスからアクセスできます(ローカルメモリでは実現できないことです)。

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

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

  • Redisは単純なキャッシュ以上のものです。様々なデータ構造、様々なアイテム退避ポリシー、ブロッキングキュー、パブ/サブ、アトミシティ、Luaスクリプトなどを提供します ...。

  • Redisは、高可用性を実現するために、マスター/スレーブ機構で活動を複製することができます。

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