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?

レストランに例える、Webサービスの全体構成【第4回】

Posted at

🍝 4回. レストランが大繁盛!そのときシステムはどうする?

ついにうちのレストランが大人気になりました!

口コミが広がり、店の前にはお客様の長い列。

多くの人に美味しい料理を届けられるのは嬉しいことですし、売上も伸びます。

でも、ここで新たな問題が…

――「席数」には限りがあり、すべてのお客様を一度に受け入れることはできません。

結果、待ちきれずに帰るお客様も出てきます。

これはWebサービスでいうと、

「ページがなかなか表示されない」「サーバーから応答がなく離脱する」状況と同じです。😢


😩 トラフィック急増!サーバーが持たない

「じゃあサーバーを増やせばいいんじゃない?」

たしかに有効な方法です。

でも、実際はそんなに簡単じゃありません。

店舗拡張=インフラ拡張、

キッチン(サーバー)も増設し、

スタッフ(開発リソース)も増やす――

これには時間もコストもかかります。

いますぐお客様(ユーザー)を逃したくはない…

でも無限にサーバー増強はできない…

じゃあどうする?


🧾 待機番号(整理券)システムの登場

レストランで考えてみましょう。

「今すぐご案内できなくても、整理券をお渡しして、

席が空いたら順番に呼びましょう!」

――とてもスマートな方法です。

お客様は整理券を受け取り、

近くで過ごしたり、用事を済ませて戻れる。

お店側も、確実に席が空くたびに順番通り案内できます。

こうして「リクエスト(注文)」が一度に殺到しても、

レストラン(サーバー)は余裕を持ってさばけます。

この役割を担うのが、

開発の世界ではRedisです。


⚡ Redis ― “超記憶力のある待機管理スタッフ”

Redisは、まるで頭の回転が速くて記憶力抜群なスタッフのようです。

お客様が来店するたび、超高速で整理券を発行し、

「今、何番のお客様をご案内中か」

「あと何組が待っているのか」を即座に把握できます。

なぜこんなに速いのか?

Redisはデータをディスクではなく**メモリ(RAM)**に保持するからです。

つまり“頭の中ですぐ答えられる情報”だけを扱うイメージ。

  • 待機番号管理
  • 現在の案内番号
  • 待ち行列一覧

のようなリアルタイムで頻繁に変わるデータ管理に最適です。

例を見てみましょう 👇

状況 Redisの役割
お客様来店 新しい番号発行(INCR)
お客様入店 待機リストから除外(LPOP)
自分の順番確認 現在の番号取得(GET)

Redisはすぐにこう答えます:

「今は3組目をご案内中、次は4番さんです!」

0.001秒で返事するスタッフのような存在です。


🧊 DBとRedisは役割が違う!

「MySQLみたいなDBに全部記録しちゃダメ?」

それも可能ですが、効率的ではありません。

DBは注文履歴や決済情報など、“長期的に残すべき情報”の保存に最適。

でも、整理券のように「短時間で頻繁に変化するデータ」をDBで管理すると

処理速度が低下し、サーバー負荷も増します。

だから――

  • DB:売上記録やレシートなど“帳簿”
  • Redis:「今の待ち状況」を映す“電光掲示板”

DBは永続的なデータ保存、

Redisは短期間でよく変わるデータの超高速処理。

この役割分担によって、Webサービスは効率よく動きます。


🧩 組み合わせて使うのが最強

実際はRedis+DBを「併用」します。

Redisで“今の状態”を瞬時に見せて、

DBで“最終結果”を安全確実に記録。

具体例:

  • Redis:現在の待機人数25人
  • DB:本日合計来店客132人

このように分担することで、

システムは速さ安定性の両立が可能となります。


🚀 まとめ

お客様が増えるほど「待機列管理」は重要です。

そんなときRedisは、

高速に変化する情報を扱う即応型システムとして大活躍します。

レストランの整理券と同じように、

ユーザーも無駄に待たずサービスを利用できる――

その結果、Webサービスはよりスムーズになり、

お客様(ユーザー)の満足度も向上します。


🍰 次回予告

待機列はスムーズに処理できました!

でも店内はお客様で溢れ、今度は注文数急増でキッチンがパンク寸前…。

次回はキャッシュ(Cache)について、

実例を交えながら一緒にみていきましょう!

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?