Redisクイックスタート
Redisをインストールしたら、さっそく始めてみましょう。基本的なRedis操作を学びます。
Redisサーバーの起動
フォアグラウンド起動
最もシンプルなRedisの起動方法です。フォアグラウンドで実行され、ログが直接ターミナルに出力されます。
BASH
redis-server
出力:
TEXT
_._
_.-``__ ''-._
_.-`` `. `_. ''-._
_.-`` .-`` .-```. ```.-'' ''-._
.-`` .-`` .-`````-..-'''.-'' ''-._
( ' . ''-. ``.
|`. `-. `-. `-. `-. `-.)
| `-. `-. `-. `-. `-. `'
`-. `-. `-. `-. `-. `-. _
`-. `-. `-. `-. `-. .-'
`-. `-. `-. `-. .-'
`-. `-. `-. .-'
`-. `-. .-'
`-. .-'
`-
Redis 7.0.11 (00000000/0) 64 bit
Running in standalone mode
Port: 6379
PID: 12345
Ready to accept connections
💡 ヒント:
Ctrl+C を押すとRedisサーバーを停止できます。
バックグラウンド起動
本番環境ではバックグラウンドでの実行が推奨されます。
BASH
# 方法1:daemonizeパラメータを使用
redis-server --daemonize yes
# 方法2:設定ファイルを編集
# /etc/redis/redis.conf を編集
daemonize yes
# その後起動
redis-server /etc/redis/redis.conf
特定のポートで起動
BASH
# ポート6380を使用
redis-server --port 6380
Redisが実行中かどうかを確認
BASH
# Linux
ps aux | grep redis-server
# またはredis-cliを使用
redis-cli ping
# Redisが実行中ならPONGが返ってきます
Redisへの接続
redis-cliの使用
redis-cliはRedisに組み込まれているコマンドラインクライアントです。
BASH
# ローカルのRedisに接続(デフォルト127.0.0.1:6379)
redis-cli
# 接続後、プロンプトが変わります:
127.0.0.1:6379>
ホストとポートの指定
BASH
# 特定のホストとポートに接続
redis-cli -h 192.168.1.100 -p 6379
# 異なるローカルポートに接続
redis-cli -p 6380
パスワード付きで接続
BASH
# 方法1:コマンドライン引数
redis-cli -a yourpassword
# 方法2:接続後に認証
redis-cli
AUTH yourpassword
OK
⚠️ 注意:セキュリティ上の警告
-a パラメータを使用すると、パスワードがコマンド履歴に露出します。本番環境ではAUTHコマンドまたは設定ファイルを使用してください。
Unixソケット経由の接続
BASH
redis-cli -s /tmp/redis.sock
redis-cliの終了
BASH
# 接続を終了
exit
# または
quit
# またはCtrl+D
最初のコマンド:PING
PINGコマンドは接続が機能しているかどうかをテストします。ネットワークのpingコマンドと似ています。
例:接続テスト
BASH
PING
Redisが正常に動作していれば、PONGが返ってきます。
メッセージ付きPING
REDIS
PING "Hello"
"Hello"
PINGはメッセージを運ぶことができ、Redisはそれをそのまま返します。
💡 使用例: PINGはヘルスチェック、接続テスト、ネットワークレイテンシの測定によく使用されます。
基本コマンド:SETとGET
SETとGETは、文字列データを保存および取得するための最も一般的なコマンドです。
SET:データの保存
SETコマンドはキーと値のペアを設定します。
例:基本的なSET
BASH
SET name "Redis Tutorial"
GET name
例:有効期限付き
BASH
# 10秒で期限切れになるキーを設定
SET temp "temporary" EX 10
GET temp
# またはミリ秒単位でPXを使用
SET temp2 "temp" PX 5000
GET temp2
例:キーが存在しない場合のみ設定
BASH
# NX:キーが存在しない場合のみ設定
SET name "New Name" NX
# XX:キーが存在する場合のみ設定
SET name "Updated Name" XX
GET name
SETコマンドの完全な構文
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT timestamp|PXAT timestamp]
| パラメータ | 説明 |
|---|---|
| NX | キーが存在しない場合のみ設定 |
| XX | キーが存在する場合のみ設定 |
| GET | 古い値を返す(Redis 6.2+) |
| EX seconds | 有効期限を秒単位で設定 |
| PX milliseconds | 有効期限をミリ秒単位で設定 |
| EXAT timestamp | 有効期限のUnixタイムスタンプ(秒) |
| PXAT timestamp | 有効期限のUnixタイムスタンプ(ミリ秒) |
GET:データの読み取り
GETコマンドはキーの値を取得します。
例:基本的なGET
BASH
GET name
# キーが存在しない場合、nilを返す
GET notexist
例:GETSET(古い値を取得し、新しい値を設定)
BASH
GETSET name "New Value"
GET name
その他の基本コマンド
DEL:キーの削除
REDIS
SET temp "delete me"
OK
DEL temp
(integer) 1 # 削除成功、削除されたキーの数を返す
DEL temp
(integer) 0 # キーが存在しない、0個削除
EXISTS:キーの存在確認
REDIS
SET name "Redis"
OK
EXISTS name
(integer) 1 # 存在する
EXISTS notexist
(integer) 0 # 存在しない
KEYS:キーの検索
REDIS
# テストデータを設定
SET user:1 "Alice"
SET user:2 "Bob"
SET product:1 "iPhone"
# すべてのキーを検索(注意して使用!)
KEYS *
1) "user:1"
2) "user:2"
3) "product:1"
4) "name"
# パターンに一致するキーを検索
KEYS user:*
1) "user:1"
2) "user:2"
KEYS *:1
1) "user:1"
2) "product:1"
⚠️ 注意: KEYSコマンドはデータベース全体をスキャンします。大規模なデータセットでは非常に遅く、本番環境では避けるべきです!代わりにSCANを使用してください。
FLUSHDB:現在のデータベースをクリア
REDIS
# 現在のデータベースのすべてのデータをクリア(危険!)
FLUSHDB
OK
⚠️ 危険: FLUSHDBはすべてのデータを削除します。本番環境では細心の注意を払って使用してください!
DBSIZE:キーの数を数える
REDIS
DBSIZE
(integer) 4 # 現在のデータベースには4つのキーがあります
コマンドの戻り値の型
Redisコマンドは異なるタイプの結果を返します:
| 戻り値の例 | 型 | 説明 |
|---|---|---|
OK |
単純な文字列 | 操作成功 |
"value" |
文字列 | 文字列の値 |
(integer) 1 |
整数 | 数値結果 |
1) "a"2) "b" |
配列 | リストまたはセット |
(nil) |
Null | キーが存在しないか、結果がない |
# Error |
エラー | コマンド実行失敗 |
コマンドのバッチ実行
インタラクティブモード
redis-cliでコマンドを1つずつ入力します:
REDIS
SET a 1
OK
SET b 2
OK
GET a
"1"
パイプラインモード
ファイルからコマンドをバッチ実行します:
BASH
# コマンドファイル commands.txt を作成
echo "SET key1 value1" > commands.txt
echo "SET key2 value2" >> commands.txt
echo "GET key1" >> commands.txt
# バッチ実行
cat commands.txt | redis-cli
出力:
TEXT
OK
OK
"value1"
コマンドラインからの直接実行
BASH
# 単一のコマンドを直接実行
redis-cli SET mykey "myvalue"
# 出力:OK
redis-cli GET mykey
# 出力:"myvalue"
# 複数のコマンドを実行
redis-cli << EOF
SET a 1
SET b 2
GET a
GET b
EOF
ヘルプシステムの使用
Redisには組み込みの包括的なヘルプシステムがあります。
コマンドヘルプの表示
REDIS
HELP SET
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
summary: Set the string value of a key
since: 1.0.0
group: string
コマンドグループの表示
REDIS
HELP @string
# すべての文字列コマンドを一覧表示
タブ補完
redis-cliはTabキーによるコマンド補完をサポートしています:
REDIS
SET<Tabキーを押す>
# SETに自動補完されます
便利なヒント
1. サーバー情報の表示
REDIS
INFO
# 広範なサーバー情報を返します
# 特定のセクションを表示
INFO server
INFO memory
INFO stats
2. 設定の表示
REDIS
# すべての設定を表示
CONFIG GET *
# 特定の設定を表示
CONFIG GET maxmemory
1) "maxmemory"
2) "0"
3. コマンドのモニタリング
REDIS
# 実行されたすべてのコマンドをリアルタイムで監視
MONITOR
OK
# その後、すべてのクライアントからのすべてのコマンドが表示されます
💡 使用例: MONITORはデバッグに便利です。すべてのクライアントコマンドを確認できます。本番環境では注意して使用してください(パフォーマンスに影響します)。
4. クライアント接続の表示
REDIS
CLIENT LIST
id=1 addr=127.0.0.1:52345 fd=8 name= age=10 idle=0 ...
❓ よくある質問
Q redis-cliで接続できません。
A Redisが実行中かどうか(
ps aux | grep redis)、ポートが正しいかどうか、ファイアウォール設定を確認してください。Q なぜ(nil)が返ってくるのですか?
A (nil)はnullを意味します。通常はキーが存在しないためです。EXISTSで確認してください。
Q テストデータをクリアするにはどうすればよいですか?
A FLUSHDBで現在のデータベースをクリアするか、FLUSHALLですべてのデータベースをクリアします(危険!)。
Q すべてのキーを表示するにはどうすればよいですか?
*A:KEYS を使用しますが、大規模なデータセットでは遅いです。本番環境ではSCANを使用してください。
Q:redis-cliを終了するにはどうすればよいですか?
A exitまたはquitと入力するか、Ctrl+Dを押します。
📖 まとめ
- redis-serverでRedisサーバーを起動し、redis-cliで接続します
- PINGで接続をテストし、SET/GETで文字列を保存および取得します
- DELでキーを削除し、EXISTSでキーの存在を確認します
- KEYSでキーを検索(本番環境では注意)、DBSIZEでキーの数を数えます
- HELPでコマンドヘルプ、Tabキーで補完を使用します
- MONITORでコマンドを監視し、INFOでサーバー情報を表示します
📝 練習問題
- 起動の練習:Redisサーバーを起動し、redis-cliで接続してPINGコマンドを実行しましょう
- 基本操作:SETを使用して自分の名前と年齢を保存し、GETで取得してみましょう
- 有効期限の練習:有効期限付きのキーを設定し、期限が切れるのを待ってGETで確認しましょう
- バッチ操作:複数のRedisコマンドを含むテキストファイルを作成し、パイプラインモードで実行しましょう
次のレッスン
次のレッスンでは、Redisの設定について学びます。Redisの設定ファイルと一般的な設定オプションを解説します。



