Sidekiq の queue を眺める際に使用するコマンドを雑にまとめる
はじめに
前回書いたこの記事を書く際に実際に積まれている queue をあれこれ見ていたのですが、
その際に使ったコマンドを忘れそうだったのでまとめておく。
めんどくさくてまとめなかったわけでは…
redis-cli
まずは基本的なこと redis-cli を使って redis のデータを見ることが出来る
Redis server に接続して対話的に実行
$ redis-cli redis 127.0.0.1:6379> KEYS *
引数を指定して実行
$ redis-cli KEYS '*'
perform_async
※ perform_async で user 3 つ default 2 つ queue を積んだ状態
どんな key が生成されるか
$ $ redis-cli KEYS '*' 1) "queue:default" 2) "queues" 3) "queue:user"
key の member を全て取得
# SMEMBERS key $ redis-cli SMEMBERS 'queues' 1) "user" 2) "default"
queue の件数を取得
$ redis-cli LLEN "queue:user" (integer) 3
queue を 1 件取得
# LINDEX index $ redis-cli LINDEX "queue:user" 0 "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"user\",\"jid\":\"adddb1f368e7a622225ef315\",\"created_at\":1445260869.8274186,\"enqueued_at\":1445260869.8274736}"
queue を複数件取得
# LRANGE start end $ redis-cli LRANGE "queue:user" 1 2 1) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"user\",\"jid\":\"b009bbcaa2b0dca70201b448\",\"created_at\":1445260841.7604742,\"enqueued_at\":1445260841.760538}" 2) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"user\",\"jid\":\"c9d40578849234b9f8b8d429\",\"created_at\":1445260828.8738196,\"enqueued_at\":1445260828.8746564}"
perform_in
※ perform_in で 3 つ queue を積んだ状態
どんな key が生成されるか
$ redis-cli KEYS '*' 1) "schedule"
schedule の member を見る
start と end を指定する
# ZRANGE key start end $ redis-cli ZRANGE schedule 0 0 1) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"default\",\"jid\":\"2b6f8042a496b71128881c12\",\"created_at\":1445259670.319731}"
全て取得する
$ redis-cli ZRANGEBYSCORE schedule -inf +inf 1) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"default\",\"jid\":\"2b6f8042a496b71128881c12\",\"created_at\":1445259670.319731}" 2) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"default\",\"jid\":\"edc66e38f51e4b405ef2b984\",\"created_at\":1445260137.1156876}" 3) "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"default\",\"jid\":\"8eb4b0bf44dee20a4c797424\",\"created_at\":1445260138.2186956}"
削除する
# ZREM key member $ redis-cli ZREM schedule "{\"class\":\"UserWorker\",\"args\":[1],\"retry\":true,\"queue\":\"default\",\"jid\":\"2b6f8042a496b71128881c12\",\"created_at\":1445259670.319731}"
全部消したい!
普通はやらないけど全部のデータを消したい時に使う
$ redis-cli FLUSHALL OK
最後に
ここら辺が使えれば Sidekiq の Redis 周りのことを調べるには困らないはず!