macからAzure Cache for Redisへredis-cliにて接続する

やろうとしてちょっと困ったので備忘録的に。
Azure Cache for RedisはデフォルトでNon-SSL portがdisabledになっており、本番運用としてもNon-SSL portをenableにして使うことはないと思います。

でも格納されているデータをAzure PortalのConsoleから利用しようとすると使い勝手が悪い。。。手元のterminalで操作してデータを取りたい。ということでmacから接続する方法です。

Windowsで接続する方法は以下ドキュメントがありますのでそちらを参照してください。

docs.microsoft.com

redis-clissl対応されていないためstunnelでSSLトンネリングして接続します。

homebreのインストール

まずhomebrewをインストールします。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

redisのインストール

次にredisのインストール

$ brew install redis

stunnelのインストールとstunnel.confの編集

stunnelをインストールし、コンフィグを作成する。

$ brew install stunnel
$ vi /usr/local/etc/stunnel/stunnel.conf

stunnel.confの内容は以下のようにする。(example部分は自リソースで置き換える)

[redis-cli]
client = yes
accept = 127.0.0.1:6379
connect = example.redis.cache.windows.net:6380

接続

準備が終わったら接続です。

$ redis-server &
$ stunnel
$ redis-cli -h localhost --raw
127.0.0.1:6379> auth {access key}
OK

rawオプションをつけているのは2バイト文字の文字化け対応です。