Redisの始め方ガイド:インストールから基本操作まで
- インストールと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.conf で save 900 1 のようなRDB永続化や、appendonly yes のAOF永続化を有効にするとデータを保持できます。
Q: キャッシュの整合性が崩れる → 「DBを更新したらRedisのキャッシュも削除(or 更新)する」というCache-Aside戦略が基本です。更新タイミングを一貫させることが重要です。
Q: Redisをそのままデータベースとして使っていいの? → 用途によります。揮発性でいいキャッシュ・セッション・リアルタイムランキングには最適ですが、重要データの永続化にはRDBMSと組み合わせるのが一般的です。
Redisはデータをメモリ上に保存する「インメモリデータベース」だよ。ディスクに書き込むMySQLなどと比べて、読み書きが圧倒的に速いのが特徴なんだ。
メモリって、電源切ったらデータ消えちゃうんじゃ…?
へぇ!始めるにはどうすればいいの?
一番簡単なのはDockerを使う方法だね。`docker run -d --name redis -p 6379:6379 redis` とコマンドを打つだけで起動できるよ。
おお、1行で!起動したら何ができるの?
`redis-cli` というコマンドでRedisに接続できるよ。`SET name "hiyoko"` で値を保存して、`GET name` で取り出す。これが一番基本的な操作だね。
シンプル!他にどんなデータ型があるの?
ランキング機能が簡単に!?実際どういう場面で使われてるの?
そんな有名なサービスでも!学習するコツはある?
まずは `redis-cli` で SET/GET/DEL の基本操作に慣れること。その後、リストやハッシュなど他のデータ型を試してみよう。Redis Insight という公式GUIツールを使うと中身が可視化できて理解が進むよ。
有効期限を設定できるって聞いたけど?