0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redisとは?高速インメモリDBの仕組みとセッション管理への活用

Posted at

Redisとは?高速インメモリDBの仕組みとセッション管理への活用

最近、Webアプリケーションやビッグデータ関連の開発でよく耳にする Redis
本記事では、Redisの特徴や高速な理由、セッション管理での活用方法まで解説します。


Redisとは

Redisは インメモリ型のデータベース です。
つまり、ディスクではなく メモリ上で動作するデータベース であり、単純なデータ構造を扱う KVS(キー・バリュー・ストア) として利用されます。


RDBと比較したRedisの速度

RDBが遅い理由

  1. メモリとハードディスクの間を行き来する必要がある
  2. 複雑な検索処理に時間がかかる
  3. ACID特性など、データの扱いが複雑

Redisが速い理由

Redisはシンプルなデータ構造をメモリ上で扱うため、RDBに比べて高速です。

速さの公式:

速さ = (データ&処理が単純) × (メモリ上で処理を行う)


Redisとビッグデータ・NoSQL

ビッグデータの特徴として、よく 3V が挙げられます。

  • Volume(量の多さ)
  • Variety(形式の多様さ)
  • Velocity(処理速度の速さ)

大量かつ多様なデータを高速に処理するDBが求められており、ここでNoSQLの需要が高まっています。

構造化データと非構造化データ

  • 構造化データ
    通常の業務データを管理するのが得意で、RDBが適している
  • 非構造化データ
    セッション情報やログなどの高速処理が必要なデータ向け
    → 近年は非構造化データのニーズに対応するため、NoSQLが登場

ビッグデータの発展により、正確性よりもスピード が求められる場面が増え、NoSQLが必要とされるようになりました。


Redisとセッション管理

セッションとは

HTTPはステートレス(状態を保持しない)ため、ユーザ情報はセッションデータとして保持する必要があります。

セッションデータを保持する方法は主に2つです。

  1. Cookieのみでユーザ情報を保持
    → クライアント側で全て保持
  2. セッションIDを使う方法
    → クライアントはセッションIDのみ保持
    → サーバ側でIDに紐づくデータを保持
    → スケーラブルなストアを用意することで、セッションデータの上限を気にせず管理可能

Redisをセッションストアに使う理由

  • RDBよりも圧倒的に高速
  • メモリ上でデータを管理できるため、アクセスの多いセッション情報でもボトルネックになりにくい
  • スケーラブルにデータを保持可能

まとめ

  • Redisはメモリ上で動く高速KVS
  • RDBに比べてシンプルなデータ構造と高速処理で優位
  • ビッグデータ時代の高速・大量データ処理に適したNoSQL
  • Webアプリではセッション管理に最適

Redisをうまく活用することで、アプリケーションのパフォーマンス向上やスケーラビリティ確保が可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?