Table Of Contents

Previous topic

全データ型対応の操作

Next topic

パブリッシュ/サブスクライブ

This Page

制御コマンド

永続化処理コマンド

SAVE()

すべてのデータセットをディスクに保存します。(つまりすべてのデータベースが保存され、 EXPIRE がセットされたキーの有効期限も保存されます。)保存が完了するまではサーバはハングします。しばらくの間は一切接続が出来ません。データベースがすべてディスクに書き込み終わったときに OK コードが返ってきます。

このコマンドと同様だけれどもバックグラウンドで処理してくれるものが BGSAVE です。こちらはサーバがクライアントに対して処理をしている間にもバックグラウンドで保存が出来ます。

返り値

Status code replyが返ります。
BGSAVE()

データベースの保存をバックグラウンドで行います。 OK コードは直ちに返って来ます。Redisはフォークし、親のプロセスはクライアントに対して処理をし続け、子のプロセスはデータベースをディスクに保存したあと死にます。クライアントから保存が無事に終わったかを LASTSAVE コマンドを使って確認することが出来ます。

返り値

Status code replyが返ります。
BGREWRITEAOF()

Redis Append Only File(AOF)に関するより詳細な情報についてはAppend Only File Howtoを参考にしてください。

BGREWRITEAOF はAOFのサイズが大きくなりすぎたとき、バックグラウンドで再書き込みします。RedisのAOFはジャーナルなので、データセットを変更するすべての操作はAOFにログに取られます(そしてスタートアップ時に再生されます)つまりAOFは常に大きくなり続けます。AOFの中身を再構成するために、 BGREWRITEAOF は新しいAOFを作成して、データベースを再構成するためのコマンドの数を最小限にすることを保証するために、その時点でのデータセットをメモリに直接書きこむことから始めます。

AOF Howtoではより詳細な情報が書いてあります。

返り値

Status code replyが返ります。
LASTSAVE()

最後にデータベースの保存が成功したUNIX時間を返します。クライアントは BGSAVE が成功したかどうかを LASTSAVE の値を見ることで確認することが出来ます。 BGSAVE を呼び出したあと、N秒ごとに LASTSAVE を呼び出して値が変わったかを確認するのです。

返り値

Integer replyが返ります。具体的にはUNIXタイムスタンプです。
SHUTDOWN()

すべてのクライアントを止めて、データベースを保存した後にサーバを停止します。このコマンドは確実にデータベースがその後のどんなデータ変更もなしに保存され、停止したことを保証します。これはもしクライアントが単純に SAVEQUIT を呼び出した場合には保証されません。なぜなら他のクライアントがその2つのコマンドの間にデータベースを修正している可能性があるからです。

返り値

エラー発生時にはステータスコードが返ります。成功時には何も返りませんなぜならサーバが停止してコネクションが閉じられるからです。

リモートサーバ制御コマンド

INFO()

INFO コマンドはサーバに関する情報と統計を表示します。パースもしやすく、可読性の高い形で表示します。

返り値

Bulk replyが返ります。具体的には次のようなフォーマットです:

edis_version:0.07
connected_clients:1
connected_slaves:0
used_memory:3187
changes_since_last_save:0
last_save_time:1237655729
total_connections_received:1
total_commands_processed:1
uptime_in_seconds:25
uptime_in_days:0

すべてのフィールドは フィールド:値 の形で表示されます。

ノート

  • used_memory はバイト単位で表示されます。これはプログラムがmallocを使ってアロケートしたバイト数の合計を表示しています。
  • uptime_in_days は主に人間が読むためだけに用意された項目です。なぜなら uptime にすでに起動時間の情報が秒で表示されているからです。
  • changes_since_last_save はキーの変更回数は参照しておらず、データセットに対する変更回数を参照しています。
MONITOR()

MONITOR はデバッグ用のコマンドで、Redisサーバが受け取ったすべてのコマンド一覧を表示します。データベース内で何が起きているかを理解するには非常に手軽な方法です。このコマンドはtelnet越しに直接使えます。

% telnet 127.0.0.1 6379
Trying 127.0.0.1...
Connected to segnalo-local.com.
Escape character is '^]'.
MONITOR
+OK
monitor
keys *
dbsize
set x 6
foobar
get x
del x
get x
set key_x 5
hello
set key_y 5
hello
set key_z 5
hello
set foo_a 5
hello

サーバ内で処理されているすべてのリクエストを見ることが出来ることでRedisをデータセットとして使うときも分散キャッシュとして使うときも、アプリケーション内のバグを探しやすくなります。

監視を辞めるには QUIT コマンドを手で入力するだけでできます。

返り値

普通の返り値ではなく、受け取ったコマンドを無限にダンプするだけです。
SLAVEOF(host, port)
SLAVEOF(no, one)

SLAVEOF コマンドはスレーブのレプリケーション設定をすぐさま変更することが出来ます。もしRedisサーバがすでにスレーブとして動いている場合は、 SLAVEOF NO ONE によってレプリケーションをマスターに切り替えることが出来ます。 SLAVEOF hostname port という形で使えば、サーバを指定したホスト名とポートでリスニングしている特定のサーバのスレーブにすることが出来ます。

もしサーバがすでにあるマスターのスレーブだった場合には、 SLAVEOF hostname port のコマンドによって古いサーバのレプリケーションを止め、古いデータセットを捨てて、新しいサーバに対して動機を始めます。

もし SLAVEOF no one がレプリケーションを停止して、サーバをマスターに変更してくれますが、レプリケーションしたデータを捨てるわけではありません。もし古いマスターが停止した場合に、スレーブをマスターにして、アプリケーションが新しいマスターに対して読み書きを行うように変更することが可能です。後に他のRedisサーバが直された時にはスレーブとして設定することができます。

返り値

Status code replyが返ります。
CONFIG(GET, pattern)

New in version 2.0.

CONFIG(SET, parameter, value)

New in version 2.0.

CONFIG コマンドは起動しているRedisサーバの設定を変更したり、取得したりすることが出来ます。すべての設定パラメータが利用出来るわけではありません。

CONFIG は2つのサブコマンドを持っています。 GETSET です。 GET コマンドは読み込みの設定に使われます。 SET コマンドは設定を変更するために

CONFIG GET パターン

CONFIG GET は現在の設定パラメータを返します。このサブコマンドは引数を1つだけ録ります。引数はglob形式のパターンです。すべての設定パラメータはキーと値のリストの形で表示sれます。例えば以下のような感じです。

$ redis-cli config get '*'
1. "dbfilename"
2. "dump.rdb"
3. "requirepass"
4. (nil)
5. "masterauth"
6. (nil)
7. "maxmemory"
8. "0\n"
9. "appendfsync"
10. "everysec"
11. "save"
12. "3600 1 300 100 60 10000"

$ redis-cli config get 'm*'
1. "masterauth"
2. (nil)
3. "maxmemory"
4. "0\n"

返り値の方はBulk replyです。

CONFIG SET parameter value

CONFIG SET はサーバを設定しなおすために使います。特定の設定パラメータの値を更新するのです。

CONFIG SET でサポートされる設定パラメータのリストは CONFIG GET * コマンドを発行することで得られます。

CONFIG SET によって設定された設定は直ちにRedisサーバにロードされて、次に実行するコマンドからそのようにふるまいます。

例:

$ ./redis-cli
redis> set x 10
OK
redis> config set maxmemory 200
OK
redis> set y 20
(error) ERR command not allowed when used memory > 'maxmemory'
redis> config set maxmemory 0
OK
redis> set y 20
OK

パラメータ値のフォーマット

設定パラメータの値はRedis設定ファイル内のパラメータと一緒です。ただし下記のような例外があります。

  • 保存パラメータは空白区切りの整数のリストです。2つの整数の組で時間と保存のトリガーとなる変更回数の上限を指定します。例えば CONFIG SET save 3600 10 60 10000 はサーバにもし少なくともデータセットに10回の変更があった場合、3600秒ごとにRDBファイルのバックグラウンドでの保存を、もし少なくとも10000回の変更があった場合には60秒ごとの保存を行うように設定します。
  • すべての整数のパラメータはバイト単位が使われたときのみ返されたメモリと受け付けられたメモリを表しています。

Note

完全に翻訳が謎。

あわせて参照

INFO コマンドは CONFIG コマンドでは確認できない設定パラメータの読み込みに使うこともできます。