NoSQLとは?4つの種類・カラム型の2つの意味・RDBとの比較とRedisで確かめた使いどころ【2026年】
NoSQL(ノーエスキューエル)とは、表(テーブル)以外の形でデータを保存するデータベースをまとめた呼び方です。MySQLやPostgreSQLのようなリレーショナルデータベース(RDB)が、データを行と列の表に整理してSQLで扱うのに対して、NoSQLは「キーと値の組」「JSONのような文書」「人と人のつながり」など、用途に合わせた形でデータを持ちます。名前は「Not only SQL(SQLだけではない)」の意味で使われることが多い言葉です。
NoSQLは、大量のアクセスを高速にさばく、形の決まっていないデータを柔軟に保存する、といった場面で使われます。この記事では、NoSQLの4つの種類と代表的な製品、混同されやすい「カラム型データベース」の2つの意味、RDBとの比較と選び方を解説します。代表的なNoSQLであるRedisを実際に動かした結果も紹介します。
この記事の確認方法(2026年10月6日時点)
- Redisのライセンスや機能は、Redisの公式サイト(redis.io)で確認しました
- Redisは、MacにHomebrewで入れたRedis 8.10.2で実行し、出力をそのまま載せています

NoSQLとは:RDBとの違い
| RDB(リレーショナルデータベース) | NoSQL | |
|---|---|---|
| データの形 | 行と列の表。表どうしを関係づける | キーと値、文書(JSON)、列のまとまり、グラフなど |
| データの決まり(スキーマ) | 先に表の形を決める | 決めなくてよいものが多い。1件ごとに形が違ってもよい |
| 問い合わせ | SQL。表をつなぐJOINや集計が得意 | 製品ごとの命令やAPI。JOINは苦手か、できないものが多い |
| 得意なこと | データの正しさ、複雑な検索と集計 | 大量のアクセスを速くさばく、サーバーを増やして規模を広げる |
| 代表例 | MySQL、PostgreSQL、SQLite | Redis、MongoDB、Cassandra、Neo4j |
NoSQLは、RDBの代わりではなく得意な場面が違う道具です。実際のWebサービスでは、会員情報や注文はRDBに保存し、表示を速くするためのキャッシュやランキングはRedisに置く、というように組み合わせて使うことがよくあります。
NoSQLの4つの種類
| 種類 | データの持ち方 | 代表的な製品 | よく使われる場面 |
|---|---|---|---|
| キー・バリュー型 | 「キー」と「値」の組。キーを指定して値を取り出す | Redis、Amazon DynamoDB | キャッシュ、ログイン状態(セッション)、ランキング、カウンター |
| ドキュメント型 | JSONのような文書を1件ずつ保存する。文書ごとに項目が違ってよい | MongoDB、Firebase の Cloud Firestore | アプリのデータ、商品カタログ、ブログ、設定 |
| ワイドカラム型 | 行ごとに、たくさんの列を自由に持てる。複数のサーバーに分けて大量に保存する | Apache Cassandra、Google Cloud Bigtable、Apache HBase | IoTの機器データ、アクセスの記録など、書き込みが非常に多いデータ |
| グラフ型 | 「点(ノード)」と「線(つながり)」でデータを持つ | Neo4j | SNSの友達関係、おすすめ、不正の検知、経路の探索 |
最近は、AIの検索で使う「ベクトル」を保存して、意味の近いデータを探すデータベースも広がっています。Redisも、Redis 8で「vector set」というデータ型を加えています。
「カラム型データベース」には2つの意味がある
「カラム型データベース」という言葉は、まったく別の2つのものを指して使われるので注意が必要です。
| ワイドカラム型(NoSQL) | 列指向(カラムナ)データベース | |
|---|---|---|
| 何のこと | 上の表のNoSQLの1種類。行ごとに自由な列を持つ | データを「列ごと」にまとめて保存するデータベース。多くはSQLで使う |
| 得意なこと | 大量の書き込みを、たくさんのサーバーに分けて受け止める | 大量のデータの集計(「全部の売上の合計」など、特定の列だけ読む処理) |
| 例 | Apache Cassandra、Google Cloud Bigtable、Apache HBase | Google BigQuery、Amazon Redshift、ClickHouse、DuckDB |
| NoSQLか | NoSQL | 多くはNoSQLではない(SQLで使う分析用のデータベース) |
データ分析の文脈で「カラム型」と言われたら、多くは列指向のデータベースのことです。列ごとに保存すると、集計に必要な列だけを読めばよく、同じ種類の値が並ぶので圧縮もしやすくなります。一方、NoSQLの種類として「カラム型」と言われたら、ワイドカラム型のことです。
Redisを実際に動かしてみた
キー・バリュー型の代表であるRedisを、手元のMacで動かしました。redis-cli というコマンドで命令を送っています(> の行が命令、その下が結果です。日本語を読めるように --raw を付けています)。
1.値の保存、カウンター、有効期限
> SET user:1:name "佐藤"
OK
> GET user:1:name
佐藤
> INCR page:top:views
1
> INCR page:top:views
2
> INCR page:top:views
3
> SET session:abc123 "user:1" EX 1800
OK
> TTL session:abc123
1800
> GET user:999:name
SETとGETで、キーを指定して値を保存・取り出し。存在しないキー(user:999:name)は空が返りますINCRは値を1増やします。たくさんのアクセスが同時に来ても数え間違えないので、閲覧数のカウンターなどに使われますEX 1800を付けると、1800秒(30分)たつと自動で消えるデータになります。TTLで残り秒数がわかります。ログイン状態やキャッシュに向いています
2.いろいろなデータの形
> HSET user:2 name "高橋" course "AI駆動開発" score 91
3
> HGETALL user:2
name
高橋
course
AI駆動開発
score
91
> RPUSH queue:mail "高橋さんへの案内" "田中さんへの案内" "伊藤さんへの案内"
3
> LPOP queue:mail
高橋さんへの案内
> LLEN queue:mail
2
> ZADD ranking 82 "佐藤" 64 "鈴木" 91 "高橋" 77 "田中" 85 "伊藤"
5
> ZREVRANGE ranking 0 2 WITHSCORES
高橋
91
伊藤
85
佐藤
82
> ZINCRBY ranking 20 "鈴木"
84
> ZREVRANK ranking "鈴木"
2
- ハッシュ(HSET):1つのキーに、名前・コース・点数のような項目をまとめて保存
- リスト(RPUSH・LPOP):入れた順に取り出す「待ち行列」。メールの送信待ちなどに使います
- ソート済みセット(ZADD):点数で自動的に並ぶ集まり。
ZREVRANGEで上位3人がすぐ出ます。鈴木さんに20点足すと(ZINCRBY)、順位(ZREVRANK、0から数える)が2、つまり3位に上がりました。ゲームのランキングによく使われます
3.どれくらい速いか
$ redis-benchmark -q -t set,get -n 100000
SET: 149476.83 requests per second, p50=0.255 msec
GET: 165562.92 requests per second, p50=0.239 msec
Redisに付いてくる計測ツールで、10万回の書き込み(SET)と読み込み(GET)を試すと、1秒あたり約15万〜16万回の処理ができました。Redisはデータをメモリに置くので、とても速く動きます。筆者のパソコン(Apple シリコンのMac)での一例で、サーバーやネットワークの条件で変わります。
Redisが苦手なこと
Redisは「キーを指定して取り出す」のは得意ですが、「80点以上の人を全員探す」「コースごとに平均点を出す」といった、値の中身で探したり集計したりするのは、RDBのSQLのようには書けません。ランキングのように、あらかじめ用途に合わせた形でデータを持っておく必要があります。どう使うかを先に決めて、それに合わせてデータの形を決めるのが、NoSQLの基本的な考え方です。
Redisのライセンスの変化
Redisは2024年3月に、ライセンスをオープンソースではない形(SSPLなど)に変えました。これをきっかけに、Redisから分かれたValkeyというプロジェクトが生まれています。その後、Redis 8からは、OSI(オープンソースの定義を管理する団体)に認められたAGPLv3も選べるようになりました。仕事で使うときは、使う版とライセンスを確かめておきましょう。
RDBでもJSONは扱える
「形の決まっていないデータを保存したいからNoSQL」と考える前に、RDBのJSON機能も検討しましょう。PostgreSQLのJSONB型や、MySQLのJSON型を使えば、表のデータと一緒にJSONを保存して、SQLで検索できます。実際に動かした例はPostgreSQLとは?とMySQLとは?で紹介しています。データの正しさやJOINが必要なら、まずRDBで足りないかを考えるのがおすすめです。
NoSQLの選び方
| やりたいこと | 候補 |
|---|---|
| 表示を速くしたい(キャッシュ)、ログイン状態を持ちたい、ランキングを作りたい | キー・バリュー型(Redisなど) |
| スマホアプリのデータを手軽に保存・同期したい、文書ごとに項目が違う | ドキュメント型(MongoDB、Cloud Firestoreなど) |
| 機器のデータなど、毎秒大量の書き込みを受け止めたい | ワイドカラム型(Cassandraなど) |
| つながりをたどる検索をしたい(友達の友達、おすすめ) | グラフ型(Neo4jなど) |
| 注文や会員など、正しさが大事で、表をつないで集計したい | NoSQLではなくRDB(MySQL、PostgreSQLなど) |
| 大量のデータを集計・分析したい | 列指向のデータベース(BigQueryなど) |
よくある質問
Q.NoSQLはSQLを使わないという意味ですか?
一般には「Not only SQL(SQLだけではない)」の意味で使われます。NoSQLの製品の中にも、SQLに似た問い合わせの言葉を持つものがあります。
Q.NoSQLとRDB、どちらを学ぶべきですか?
まずはRDBとSQLがおすすめです。多くのシステムの中心にはRDBがあり、データの考え方の基本も身につきます。そのうえで、キャッシュのRedisなど、必要になったNoSQLを足していくのが実際の現場の流れです。SQLの基本はSQLとは?で解説しています。
Q.NoSQLはデータが消えやすいのですか?
製品と設定によります。Redisはデータをメモリに置きますが、ディスクに保存する設定も用意されています。逆に、キャッシュのように「消えても元のデータから作り直せる」ものだけを置く使い方もあります。大事なデータを置くときは、保存とバックアップの設定を確かめましょう。
まとめ
- NoSQLは、表以外の形でデータを持つデータベースの総称。キー・バリュー型、ドキュメント型、ワイドカラム型、グラフ型の4種類が代表的
- 「カラム型」には、NoSQLのワイドカラム型と、分析用の列指向データベースという、別の2つの意味がある
- Redisを動かすと、キャッシュの有効期限、カウンター、待ち行列、ランキングが数行の命令で作れ、1秒あたり約15万回の処理ができた
- NoSQLは「使い方を先に決めてデータの形を決める」道具。正しさやJOINが大事なデータはRDBに置き、組み合わせて使う
データベースを使いこなすには、まずプログラミングとSQLの基本が欠かせません。テックジムの無料Python入門講座で、手を動かしながら始めてみてください。
関連記事
- SQLとは?基本の書き方(SELECT・JOIN・GROUP BY)と、3つのデータベースで確かめた違い【2026年】
- PostgreSQLとは?特徴・バージョンとサポート期限・MySQLとの違いと実際に動かしたSQL【2026年】
- MySQLとは?8.0のサポート終了と新しい版の番号・PostgreSQLとの違いと実際に動かしたSQL【2026年】
- SQLiteとは?使いどころ・MySQL/PostgreSQLとの違いとPythonで確かめた落とし穴【2026年】
- Supabaseとは?機能・料金・RLS(行単位のアクセス制御)の仕組みとFirebaseとの違い【2026年】
- MongoDBとは?特徴・RDBとの違い・無料で始める方法とMongoDB 9.0で確かめた使い方【2026年】
- Redisとは?特徴・データの型・ライセンスとRedis 8で確かめたキャッシュ・永続化・メモリ上限【2026年】
参考情報
- Redis:Documentation
- Redis:Redis is now available under the AGPLv3 open source license
- Redis:Redis 8 GA
あわせて読みたい
全体像はインフラ・ネットワークの基礎、開発環境まわりはGitと開発環境の基礎にまとめています。
SQLとデータベースの基礎はSQLとは?初心者でも分かる基礎知識にまとめています。





