在紧急情况下,基础设施工程师可以使用 redis-cli 来确认 sidekiq 的内容,这是一个必须掌握的流程

使用redis-cli登录

$ redis-cli -h host -p port -a password
コマンド説明KEYS *redis に登録されているキーの一覧を取得TYPE <key>VALUE の種類GET <key>TYPE が string だった場合の値をみるLRANGE <key> 0 -1TYPE が list だった場合の値をみるSMEMBERS <key>TYPE が set だった場合の値をみるZRANGE <key> 0 -1TYPE が zsetだった場合の値をみるHGETALL <key>TYPE が hash だった場合の値をみるHKEYS <key>TYPE が hash だった場合に field の一覧をみるHVALS <key>TYPE が hash だった場合に value の一覧をみるMONITORredisサーバが受けとったコマンドを表示する

确认正在使用的 Sidekiq 键。

host:port>  KEYS 'sidekiq:*'`
 1) "sidekiq:worker.x.x:x:xxxxxx"
 2) "sidekiq:worker.x.x:x:xxxxxx"
 3) "sidekiq:queues"
 4) "sidekiq:worker.x.x:x:xxxxxx"
 5) "sidekiq:dead"
 6) "sidekiq:processes"
 7) "sidekiq:worker.x.x:x:xxxxxx"
 8) "sidekiq:worker.x.x:x:xxxxxx:workers"
 9) "sidekiq:worker.x.x:x:xxxxxx"
10) "sidekiq:worker.x.x:x:xxxxxx"
11) "sidekiq:worker.x.x:x:xxxxxx:workers"
12) "sidekiq:stat:processed:2017-04-14"
13) "sidekiq:stat:failed"
14) "sidekiq:worker.x.x:x:xxxxxx"
15) "sidekiq:worker.x.x:x:xxxxxx"
16) "sidekiq:worker.x.x:x:xxxxxx"
17) "sidekiq:worker.x.x:x:xxxxxx:workers"
18) "sidekiq:worker.x.x:x:xxxxxx:workers"
19) "sidekiq:schedule"
20) "sidekiq:worker.x.x:x:xxxxxx"
21) "sidekiq:stat:processed"
22) "sidekiq:worker.x.x:x:xxxxxx"
23) "sidekiq:worker.x.x:x:xxxxxx:workers"
24) "sidekiq:retry"
25) "sidekiq:worker.x.x:x:xxxxxx"
Sidekiq.jpg

了解每个队列的数量

查询队列的类型

host:port> type "sidekiq:queues"
set

调查队列的种类

host:port> smembers  "sidekiq:queues"
1) "search"
2) "push"
3) "outgoing_webhook"
4) "default"
host:port> LLEN  "sidekiq:queues:search"
(integer) 0
host:port> LLEN  "sidekiq:queues:push"
(integer) 0
・・・・

确认当前安排的工作。

查询日程的类型

host:port> type "sidekiq:schedule"
zset

最初的一件事情

host:port> ZRANGE "sidekiq:schedule" 0 0
1) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"

大致上查找五个项目

host:port> ZRANGE "sidekiq:schedule" 0 4
1) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"
2) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"
3) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"
4) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"
5) "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"

请列出我所有计划中的工作。

host:port> ZRANGEBYSCORE "sidekiq:schedule" -inf +inf

想要删除一个东西

host:port> ZREM schedule "{\"class\":\"Elasticsearch\",\"args\":[\"message\",hoge,\"index\"],\"retry\":true,\"queue\":\"elasticsearch\",\"jid\":`\"xxxxxxxxxxx\",\"created_at\":xxxxxx}"

将已输入的所有内容全部删除并恢复。

host:port>  FLUSHALL
OK
广告
将在 10 秒后关闭
bannerAds