hubotからRedisにアクセスする

hubot経由でRedisへの簡易なアクセスを可能にするhubot-scriptを書きましたので、誰か使う人がいるかもと思いご紹介します。

Heroku上のhubotでRedis To Go等を利用しているのであれば、scriptを導入するだけで、現状の環境変数を元に動作可能です。

このスクリプトによってチャット上の他のメンバもRedisへのアクセスが可能になるため、ご注意ください。

hubot-redis-test

コマンドラインからRedisへアクセス(redis-cli利用)

仲間内で、HerokuにてRedis To Goを使ってhubotを動かしており、まれによくRedisのCLIコマンドから Redis To Goに接続してデータを変更したりバックアップしたりということをしています。

この場合には、Herokuのhubotの環境変数 REDISTOGO_URL(Redis To Goを導入すると自動で設定されています)を参照して、redis-cliコマンドでRedisに接続しています。

おおまかな手順は以下のとおりです。

HerokuのREDISTOGO_URLを確認

heroku config コマンドで、Redisの接続先を確認します。

$ heroku config
=== hubot Config Vars
BUILDPACK_URL:     https://github.com/ddollar/heroku-buildpack-multi.git
HUBOT_LOG_LEVEL:   debug
HUBOT_SLACK_TOKEN: xoxb-16777216-9r3wQlg81Sg-p72Yw3jFkrCh
REDISTOGO_URL:     redis://redistogo:8e80edfa170a887112054e5bd93a6873@foobar.redistogo.com:6789/

※:上記の値はダミーです

redis-cliでRedisサーバへ接続して操作

REDISTOGO_URLの設定値から、認証用のパスワードが 8e80edfa170a887112054e5bd93a6873、アクセス先のホスト名が foobar.redistogo.com、ポートが 6789であることが分かるので、redis-cliコマンドで下記のように接続してデータを操作可能です。
(hubot-redis-brainを利用している場合はhubotのデータはhubot:storageというキーに一纏めにしてJSONで格納されています)

$ redis-cli -a 8e80edfa170a887112054e5bd93a6873 -h foobar.redistogo.com -p 6789
foobar.redistogo.com:6789> keys *
1) "hubot:storage"
foobar.redistogo.com:6789> set foo 1000
OK
foobar.redistogo.com:6789> set bar 2000
OK
foobar.redistogo.com:6789> keys *
1) "foo"
2) "bar"
3) "hubot:storage"
foobar.redistogo.com:6789> get foo
"1000"
foobar.redistogo.com:6789> get bar
"2000"
foobar.redistogo.com:6789> exit

hubot-redis-testの場合

拙作のhubot-redis-testでは、redis-cliから接続して操作する場合とほぼ同様なイメージで利用できます。ただし、Redisのコマンドは一般的な動詞が多いため、Redisのコマンド名にredis-プレフィックスを付加したものをhubot用のコマンド名にしています。

利用できるコマンドは今のところ、keys, get, set, exists, delのみです。

コマンドラインからですが、下記のように利用できます。

> hubot redis-keys *
hubot:storage

> hubot redis-set foo 1000
OK (foo=1000)

> hubot redis-set bar 2000
OK (bar=2000)

> hubot redis-keys *
foo,bar

> hubot redis-get foo
1000

> hubot redis-del foo
1 (foo is deleted)

> hubot redis-keys *
bar
スポンサーリンク
レクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル(大)