本文へ移動
Unlogical Systems

Ctrl / ⌘ + K でも開けます

    Unlogical Systems

    Redis を採用する理由

    Redisはメモリ上でデータを高速に扱うデータストアで、キャッシュやセッション管理に使われます。弊社がRedisを補助的に採用する場面と、運用上の注意点をまとめました。

    Redisとは

    Redisは、データをディスクではなく主にメモリ上に置いて読み書きする、キーと値の組み合わせで管理するデータストアです。MySQLのような表形式のデータベースに比べて構造は単純ですが、そのぶん応答が非常に速いのが特徴です。一時的なデータを短時間で出し入れする用途、たとえばログイン状態の保持、ページ表示結果の一時保存(キャッシュ)、順番待ちの処理一覧(キュー)などに広く使われています。Laravelをはじめ多くのフレームワークが標準で対応しています。

    弊社が採用する理由

    弊社では、MySQLを中心としたLAMP/LEMP構成の中で、Redisを「速さが必要な一時データ」の置き場として補助的に採用しています。たとえば、ログイン状態の管理や、集計に時間がかかる画面の表示結果を一時的に保存する用途です。こうした処理をMySQLだけで行うと、アクセスが集中したときにデータベースの負荷が上がり、システム全体が遅くなることがあります。Redisを間に挟むことで、本来のデータはMySQLに安全に置いたまま、応答速度だけを改善できます。また、メール送信や帳票生成のように時間のかかる処理を裏側で順番に実行する仕組みにも利用しています。すべてのシステムに必要なわけではなく、規模や要件に応じて「必要になった時点で追加する」判断をしています。

    向いている案件

    • ログイン状態(セッション)の保持
    • 表示に時間がかかるページやデータのキャッシュ
    • メール送信や帳票作成など、時間のかかる処理の順番待ち管理
    • アクセス集中時のデータベース負荷の軽減

    保守・移行の観点

    Redisはメモリ上で動作するため、サーバーのメモリ使用量を継続的に監視することが運用の中心になります。保存するデータには有効期限を設定し、不要なデータが溜まり続けない設計にします。キャッシュとして使う場合は、Redisが停止してもシステムが正しく動く(遅くなるだけで壊れない)構成にしておくことが重要です。バージョンについては、他のソフトウェアと同様にサポートが継続している版を選び、OSの更新に合わせて移行します。外部からアクセスできない設定にし、認証を有効にするなど、ネットワーク面の設定もセキュリティの観点から確認します。

    組み合わせて使う技術

    よくあるご質問

    小規模なシステムでもRedisは必要ですか?

    必ずしも必要ではありません。利用者が少なく処理も軽い場合はMySQLだけで十分です。アクセス増加や処理の重さが課題になった時点で追加する、という進め方をおすすめしています。

    Redisにデータを置くと消えてしまうことはありますか?

    メモリ上のデータが中心のため、サーバー再起動などで失われる可能性はあります。そのため弊社では、失われても再生成できる一時データに用途を限定し、重要なデータはMySQLに保存する設計にしています。

    関連するサービス

    関連する開発ガイド

    関連用語: LAMP/LEMPAPI保守運用ステージング環境

    監修: Unlogical Systems合同会社杉並区・西荻窪)公開

    まずは現場のエンジニアにご相談ください

    営業担当ではなく、実際に設計・開発を行うエンジニアが直接お答えします。ご相談・お見積りは無料、1営業日以内にご回答いたします。

    無料でご相談・お見積り

    資料の添付は、送信後に届く受付メールへの返信でお送りいただけます。

    相談・見積りは無料
    1営業日以内にご回答します

    無料で相談する