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を押します。

📖 まとめ

📝 練習問題

  1. 起動の練習:Redisサーバーを起動し、redis-cliで接続してPINGコマンドを実行しましょう
  2. 基本操作:SETを使用して自分の名前と年齢を保存し、GETで取得してみましょう
  3. 有効期限の練習:有効期限付きのキーを設定し、期限が切れるのを待ってGETで確認しましょう
  4. バッチ操作:複数のRedisコマンドを含むテキストファイルを作成し、パイプラインモードで実行しましょう

10. 次のレッスン

次のレッスンでは、Redisの設定について学びます。Redisの設定ファイルと一般的な設定オプションを解説します。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%