Help us understand the problem. What is going on with this article?

redis-cliの使い方

More than 3 years have passed since last update.

redis-cliの使い方についてまとまった情報がなかったので、まとめてみました。

redis-cliの使い方

  • redis serverに接続して対話的に実行
$ redis-cli
127.0.0.1:6379> SET hoge bar
OK
  • 引数を指定して非対話的に実行
$ redis-cli -h localhost SET hoge bar
OK
  • ファイルから読み込んで実行
$ echo "SET hoge bar" >> set.txt
$ redis-cli < set.txt
OK
  • リダイレクトを使用して実行
$ echo "SET hoge bar" | redis-cli
OK
  • 1行で複数のコマンドを実行
$ echo -e "SET hoge bar \r\n GET hoge" | redis-cli
OK
"bar"

redis-cliのオプション

オプション 説明 備考
-h <hostname> ホスト名を指定 デフォルトは127.0.0.1
-p <port> ポート番号を指定 デフォルトは6379
-s <socket> サーバのソケットを指定 これが設定されると-hと-pの設定を無視します
-a <password> パスワードを指定 requireが設定されている時、毎回「AUTHコマンド」を実行する必要がなくなります
-r <repeat> 繰り返し実行 指定したコマンドを<repeat>回繰り返します
-i <interval> 繰り返し間隔 -rオプションが指定されている時、<interval>秒の間隔で実行します
-n <db> データベースの番号 SELECTコマンドで指定するやつです
-x 最後の引数を標準入力から読み込む 「SETコマンドのVAUEの部分だけを標準入力から指定する」みたいなことが可能
-d --rawを指定した時の、区切り文字を指定 '\r\n'に代わる区切り文字を指定する
-c クラスタモードで接続 -ASKや-MOVEDのリダイレクトを許可します
--raw マルチバイト対応を許可 --rawを指定するとマルチバイト文字がちゃんと返ってきます
--no-raw マルチバイト対応を許可しない -
--csv 出力をCSV形式にする -
--stat redis serverの稼働情報を表示し続ける 総キー数、総メモリ数、クライアント数などを表示し続ける。稼働監視用オプション
--latency レイテンシ計測モードを使用 レイテンシを計測できる(Ctl-Cで止めるまで計測し続ける)
--latency-history レイテンシ計測結果を15秒間隔で表示 --latencyと似ているが、15秒ごとにレイテンシの経過を見れる点が異なる(Ctl-Cで止めるまで計測し続ける)
--slave マスタサーバから来たコマンドを表示し続ける スレーブサーバにはマスタサーバからどんなコマンドが来ているだろう?レプリケーションはちゃんと動いている?というときに使えます。
--rdb <filename> RDBファイルを取得 接続サーバのRDBファイルを取得。リモートサーバに対してのダンプコマンドと思っていいかも?
--pipe pipeモードを使用 大量にデータを登録する時とかに便利です
--pipe-timeout <n> pipeモードのタイムアウトを指定 単位は秒
--bigkeys 格納しているデータの中で一番サイズの大きいVALUEを持つKEYをデータ型毎に出力 左記のほか、データ型毎のキー数とかも出ます、
--scan カーソルを使って全部取得 scanで全件取得するときに便利。たぶん--partternとの併用が主な使い方
--pattern <pat> --scanで取得した結果を絞り込むことができる SCAN … MATCH のの部分を指定石ていることと同じ。「KEY全件から正規表現で絞り込む」みたいなことが可能
--intrinsic-latency <sec> systemに備わっているレイテンシを計測 指定した秒数間起動する
--eval <file> Luaスクリプトを使ってEVALコマンドを送る -
--help ヘルプを表示 -
--version バージョンを表示 -

使用例

使い方がパッとわかりづらいものの実行例

  • データ準備
    key:0からkey:1000までのサンプルデータを生成
    $ redis-cli debug populate 1000

  • その1 : 区切り文字を「@」にして、mget

$ redis-cli -d "@" --raw mget key:100 key:200
value:100@value:200
  • その2 : 全キーからキーの下2文字が「00」であるものを検索
$ redis-cli --scan --pattern "*00"
key:300
key:200
key:800
key:900
key:400
key:500
key:600
key:700
key:100
  • その3 : その2リクエストを2秒間隔で3回実行する
$ redis-cli -r 3 -i 2 get key:100
"value:100"
"value:100"
"value:100"
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away