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でサーバー情報を表示します

📝 練習問題

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

次のレッスン

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

100%