MENU

Redis — メモリ上で爆速に動くデータ構造ストア

Redis アイキャッチ
Redis

Redis(Remote Dictionary Server)は2009年、イタリア人エンジニアのサルバトーレ・サンフィリッポが公開したインメモリのキーバリューストアです。「全データをメモリに載せる」ことを前提に設計され、ミリ秒未満のレスポンスを安定して返す性能で、キャッシュ・セッション保存・キュー・リアルタイム集計など多用途のインフラとして世界中で採用されています。

目次

この記事の目次

  1. Redisが扱うデータ構造
  2. Redisの典型的な使われ方
  3. 永続化と運用の選択肢
  4. Redisのライセンス変動
  5. まとめ

Redisが扱うデータ構造

Redisが扱うデータ構造

「単なるキーバリュー」と言われがちですが、実際のRedisは多彩なデータ構造を扱えます。String、List、Hash、Set、Sorted Set、Stream、Bitmap、HyperLogLog、地理空間(Geo)等、アプリ側で複雑なロジックを書く代わりにRedisにそのデータ構造そのものを保管・操作させられます。

「同時投票のカウント」「ランキング上位を高速取得」「直近のメッセージ履歴」などは、Sorted SetやStreamで設計するとシンプルかつ高速に実装できます。

Redisの典型的な使われ方

Redisの典型的な使われ方

Redisの最大ユースケースはキャッシュ。RDBMSに毎回問い合わせると遅いデータをRedisに置き、ヒットすればミリ秒で返せます。セッション保存もよく使われる用途で、複数のWebサーバで共通のセッション状態を保つのに最適です。

Pub/Sub、Streams機能を使ったメッセージブローカ、Sorted Setによるランキング・タイムライン構築など、「速い」を活かしたリアルタイム系の用途も豊富です。

永続化と運用の選択肢

永続化と運用の選択肢

「メモリに全部置く」と聞くと永続性が心配になりますが、Redisは2種類の永続化方式を備えています。定期的なスナップショット(RDB)と、書き込みごとに追記するAOF(Append Only File)です。用途に応じて単独/併用が選べ、サーバ再起動時にメモリへロードして復元されます。

高可用性のために Master-Replica レプリケーション、Sentinelによるフェイルオーバ、そしてRedis Cluster(シャーディング)が用意されており、大規模本番環境にも対応します。クラウドではAWS ElastiCache、Azure Cache for Redis、Google Memorystoreなどマネージド版が普及しています。

Redisのライセンス変動

Redisのライセンス変動

Redisは長らくBSDライセンスのOSSでしたが、2024年3月、Redis Inc.が新バージョンをSSPL/RSALv2へライセンス変更しました。クラウドベンダーがRedisを自社サービスとして再販することへの牽制が主な狙いです。

これに反発する形でLinux FoundationがRedis 7.2系をフォークし「Valkey」という名前で公式OSSとして継続。AWS、Google、Oracleなどが Valkey を支持しており、新規プロジェクトでは選択肢が分岐し始めています。完全な代替互換性があるためコードは大きく変わりませんが、ライセンス影響を意識して選定する必要があります。

まとめ

Redisは「アプリの隣に置く高速メモリ」として、現代Webサービスのほぼ標準装備です。用途は多彩で、キャッシュから始まり、リアルタイム機能、キュー、ランキングまで広く活用できます。ライセンス問題に注意しつつ、自分のスタックに最適な実装を選びましょう。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次