NoSQLが生まれた背景
リレーショナルデータベース(RDB)はスキーマの硬直性・水平スケールの限界から、Webスケールのサービスに対応できない場面が生まれました。各社が独自のNoSQLを開発し、現在はユースケースに応じた多様な選択肢があります。
主要NoSQLデータベース比較
| DB | 種類 | 得意なこと | 代表的なユースケース |
|---|---|---|---|
| MongoDB | ドキュメント | 柔軟なスキーマ・JSON操作 | CMS・カタログ・プロトタイプ |
| Redis | KVS(インメモリ) | 超高速・TTL付きデータ | キャッシュ・セッション・ランキング |
| Cassandra | ワイドカラム | 書き込み高速・高可用性 | IoTログ・タイムシリーズ |
| Elasticsearch | 全文検索 | テキスト検索・集計 | ログ分析・検索エンジン |
| DynamoDB | KVS/ドキュメント | AWSフルマネージド | サーバーレスアプリ全般 |
Redisの活用例(Pythonサンプル)
import redis
r = redis.Redis(host="localhost", port=6379)
# キャッシュ(5分TTL)
r.setex("user:123:profile", 300, json.dumps(user_data))
# カウンター(PV数)
r.incr("page:top:views")
# ランキング(Sorted Set)
r.zadd("leaderboard", {"alice": 1500, "bob": 1200})
top3 = r.zrevrange("leaderboard", 0, 2, withscores=True)
RDBとNoSQLの使い分け判断
RDBを選ぶ場面:ACID特性が必要・複雑なJOINが多い・トランザクション整合性が最優先。
NoSQLを選ぶ場面:スキーマが頻繁に変わる・水平スケールが必要・特定のアクセスパターンに特化・超大量データの書き込み。
現代のアーキテクチャでは、RDB+Redis(キャッシュ)の組み合わせが最も一般的なスタックです。





