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