すべてのデータセットをディスクに保存します。(つまりすべてのデータベースが保存され、 EXPIRE がセットされたキーの有効期限も保存されます。)保存が完了するまではサーバはハングします。しばらくの間は一切接続が出来ません。データベースがすべてディスクに書き込み終わったときに OK コードが返ってきます。
このコマンドと同様だけれどもバックグラウンドで処理してくれるものが BGSAVE です。こちらはサーバがクライアントに対して処理をしている間にもバックグラウンドで保存が出来ます。
返り値
Status code replyが返ります。
データベースの保存をバックグラウンドで行います。 OK コードは直ちに返って来ます。Redisはフォークし、親のプロセスはクライアントに対して処理をし続け、子のプロセスはデータベースをディスクに保存したあと死にます。クライアントから保存が無事に終わったかを LASTSAVE コマンドを使って確認することが出来ます。
返り値
Status code replyが返ります。
Redis Append Only File(AOF)に関するより詳細な情報についてはAppend Only File Howtoを参考にしてください。
BGREWRITEAOF はAOFのサイズが大きくなりすぎたとき、バックグラウンドで再書き込みします。RedisのAOFはジャーナルなので、データセットを変更するすべての操作はAOFにログに取られます(そしてスタートアップ時に再生されます)つまりAOFは常に大きくなり続けます。AOFの中身を再構成するために、 BGREWRITEAOF は新しいAOFを作成して、データベースを再構成するためのコマンドの数を最小限にすることを保証するために、その時点でのデータセットをメモリに直接書きこむことから始めます。
AOF Howtoではより詳細な情報が書いてあります。
返り値
Status code replyが返ります。
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すべてのフィールドは フィールド:値 の形で表示されます。
ノート
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 コマンドはスレーブのレプリケーション設定をすぐさま変更することが出来ます。もしRedisサーバがすでにスレーブとして動いている場合は、 SLAVEOF NO ONE によってレプリケーションをマスターに切り替えることが出来ます。 SLAVEOF hostname port という形で使えば、サーバを指定したホスト名とポートでリスニングしている特定のサーバのスレーブにすることが出来ます。
もしサーバがすでにあるマスターのスレーブだった場合には、 SLAVEOF hostname port のコマンドによって古いサーバのレプリケーションを止め、古いデータセットを捨てて、新しいサーバに対して動機を始めます。
もし SLAVEOF no one がレプリケーションを停止して、サーバをマスターに変更してくれますが、レプリケーションしたデータを捨てるわけではありません。もし古いマスターが停止した場合に、スレーブをマスターにして、アプリケーションが新しいマスターに対して読み書きを行うように変更することが可能です。後に他のRedisサーバが直された時にはスレーブとして設定することができます。
返り値
Status code replyが返ります。
New in version 2.0.
New in version 2.0.
CONFIG コマンドは起動しているRedisサーバの設定を変更したり、取得したりすることが出来ます。すべての設定パラメータが利用出来るわけではありません。
CONFIG は2つのサブコマンドを持っています。 GET と SET です。 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
完全に翻訳が謎。
あわせて参照