紹介

Redisの基本定義

RedisはANSI C言語で実装されたオープンソースの、ネットワーク経由で利用可能、メモリ上でのデータ保管と永続化に対応したKey‑Valueデータベース/ストレージシステムです。複数のプログラミング言語向けクライアントAPIが用意されています。

  1. NoSQLの非リレーショナルデータベースに分類されます;
  2. Memcachedと同系統のソフトウェアですが機能が豊富で、Memcachedの弱点を補えます;
  3. MySQLなどリレーショナルデータベースの補助キャッシュとしてよく使われます。

対応するデータ型

  • String:文字列型
  • List:双方向連結リスト
  • Set:順序なし集合
  • zset(sorted set):ソート済み集合
  • Hash:ハッシュ構造(Mapに似た形式)

Memcachedは文字列だけに対応しており、これが両者の代表的な違いの一つです。

主な特徴

  1. 多言語クライアント対応
    公式よりJava、C/C++、C#、PHP、JavaScript、Python、Ruby、Perlなど多くの言語向けSDKが提供され、開発で簡単に利用できます。
  2. マスタースレーブ同期機構
    マスタースレーブレプリケーションに対応。遠隔地へのバックアップや読み書き分離を実現し、可用性を高められます。
  3. 高パフォーマンス
    データは基本的にメモリ上に置かれるため読み書きが高速で、分散キャッシュとして広く使われます。
  4. データ永続化機能
    メモリのデータをディスクに保存可能。再起動してもデータが完全に消えません(Memcachedは標準で永続化機能がありません)。

開発背景

初期のRedisプロジェクトはVMwareの資金援助を受け開発・保守されていました。

デモとしてWinForm(C#)の簡易Redisクライアントサンプルを使用します。C#からRedisを扱う入門的なサンプルコードです。

  • キーと値を設定
  • キーを指定して値を取得

Redis と Memcached 簡易比較

特徴RedisMemcached
データ型5種類の基本構造文字列のみ
永続化RDB/AOF永続化に対応永続化非対応
マスタースレーブ複製対応標準機能なし
メモリ退避複数の退避ポリシーLRUによる退避

紹介

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です