Redisの始め方ガイド:インストールから基本操作まで


Redisの基本ワークフロー クライアント (アプリ) redis-cli SET / GET Redis Server(メモリ上) String List Hash Sorted Set EXPIRE: 有効期限付き ディスク 定期保存(永続化) 代表的な用途: • セッション管理 • キャッシュ • ランキング • メッセージキュー
Redisの基本ワークフローとデータ型
🎚 難易度 ★★☆ 中級者向け
⏱ 学習時間の目安 読むだけ10分、基本操作まで20〜30分
📚 前提知識 sql-getting-started の基礎知識(データストアの概念があると理解が早い)
✅ このガイドで学べること
  • インストールとRedis CLIの基本操作
  • データ型(String/Hash/List/Set/Sorted Set)の使い分け
  • TTL(有効期限)の設定とキャッシュパターン
  • Pub/Subとセッション管理の概念

インストール手順

# macOS
brew install redis
brew services start redis

# Ubuntu/Debian
sudo apt install redis-server
sudo systemctl start redis

# Docker(最も手軽)
docker run -d -p 6379:6379 --name redis redis:alpine

# 接続確認
redis-cli ping  # → PONG が返ればOK

Redisコマンド早見表

# String型(最も基本)
SET key "value"           # 値を保存
GET key                   # 値を取得
SETEX key 60 "value"      # 60秒後に期限切れ
TTL key                   # 残り有効期限(秒)を確認

# Hash型(オブジェクトの保存に便利)
HSET user:1 name "ひよこ" age 0
HGET user:1 name
HGETALL user:1

# List型(キュー・スタックに使える)
RPUSH queue "job1" "job2"
LPOP queue               # 先頭から取り出す(キュー)

# Set型(重複なしの集合)
SADD tags "python" "web"
SMEMBERS tags

# キー管理
KEYS *                   # 全キー一覧(本番環境では注意)
DEL key                  # 削除
EXISTS key               # 存在確認

よくある詰まりポイント

Q: Redisのデータはサーバー再起動で消えるの? → デフォルトはインメモリのみです。redis.confsave 900 1 のようなRDB永続化や、appendonly yes のAOF永続化を有効にするとデータを保持できます。

Q: キャッシュの整合性が崩れる → 「DBを更新したらRedisのキャッシュも削除(or 更新)する」というCache-Aside戦略が基本です。更新タイミングを一貫させることが重要です。

Q: Redisをそのままデータベースとして使っていいの? → 用途によります。揮発性でいいキャッシュ・セッション・リアルタイムランキングには最適ですが、重要データの永続化にはRDBMSと組み合わせるのが一般的です。

ひよこ ひよこ

Redisって最近よく聞くけど、普通のデータベースと何が違うの?

ペンギン先生 ペンギン先生

Redisはデータをメモリ上に保存する「インメモリデータベース」だよ。ディスクに書き込むMySQLなどと比べて、読み書きが圧倒的に速いのが特徴なんだ。

ひよこ ひよこ

メモリって、電源切ったらデータ消えちゃうんじゃ…?

ペンギン先生 ペンギン先生

いい質問!Redis は定期的にディスクに保存する機能があるから、再起動してもデータが消えないよ。メモリの速度とディスクの永続性の両方を持っているんだ。

ひよこ ひよこ

へぇ!始めるにはどうすればいいの?

ペンギン先生 ペンギン先生

一番簡単なのはDockerを使う方法だね。`docker run -d --name redis -p 6379:6379 redis` とコマンドを打つだけで起動できるよ。

ペンギン先生 ペンギン先生

ここで「redis-cli ping」を打ってみてね。「PONG」と返ってきたら接続成功だよ!続けて「SET test 'hello'」→「GET test」を試してみよう。「hello」が返ってくれば基本操作はマスターだよ。TTLも「SETEX temp 10 'expires soon'」→「TTL temp」で残り秒数が確認できるよ。

ひよこ ひよこ

おお、1行で!起動したら何ができるの?

ペンギン先生 ペンギン先生

`redis-cli` というコマンドでRedisに接続できるよ。`SET name "hiyoko"` で値を保存して、`GET name` で取り出す。これが一番基本的な操作だね。

ひよこ ひよこ

シンプル!他にどんなデータ型があるの?

ペンギン先生 ペンギン先生

文字列だけじゃなくて、リスト・セット・ハッシュ・ソート済みセットなど豊富なデータ型があるよ。たとえばリストならタイムラインキュー、ソート済みセットならランキング機能が簡単に作れるんだ。

ひよこ ひよこ

ランキング機能が簡単に!?実際どういう場面で使われてるの?

ペンギン先生 ペンギン先生

よくあるのはセッション管理キャッシュ、リアルタイムのランキング、メッセージキューだね。TwitterやGitHub、Instagramなど大規模サービスでも使われているよ。

ひよこ ひよこ

そんな有名なサービスでも!学習するコツはある?

ペンギン先生 ペンギン先生

まずは `redis-cli` で SET/GET/DEL の基本操作に慣れること。その後、リストやハッシュなど他のデータ型を試してみよう。Redis Insight という公式GUIツールを使うと中身が可視化できて理解が進むよ。

ひよこ ひよこ

有効期限を設定できるって聞いたけど?

ペンギン先生 ペンギン先生

`EXPIRE key 3600` で1時間後に自動削除できるよ。これがキャッシュに最適な理由なんだ。ちなみにRedisは読み方が「レディス」で、Remote Dictionary Serverの略。辞書のように高速にデータを引ける、という名前の由来を知っておくと印象に残るよ。

次に学ぶなら