MacにSentinelをインストールする
背景
JavaxSpringで開発中のWebシステムではRedisの冗長化のためにRedis-Sentinelを利用している
開発環境だけは設定をかえて〜という回避策は、共通の部分でSession管理にRedis-Sentinelを使うように設定していたため、書き換えるのも難しいかった。
そこで、開発環境でもSentinel動かせばいいじゃない!ということで調査しました。
方法
brew install redis
brew services start redis
redis-sentinel /usr/local/etc/redis-sentinel.conf
注意
- 上記だけではSentinelはログイン時に起動はしません(Redisだけ)
- redid-sentinel /usr〜で、フォアグラウンドで動作しますが、ターミナル閉じると停止しちゃいます
構築される環境
Redis
IP:127.0.0.1
PORT:6379
Sentinel
IP:127.0.0.1
PORT:6379
Master名:mymaster
動作確認方法
Sentinelへ接続
redis-cli -p 26379
Redisのmasterの情報を取得
sentinel masters
Sentinelと接続解除
quit
Redisへ接続
redis-cli -p 6379
Redisの全key情報を取得
keys *
cloud portal-wwwのTomcatを起動して、ブラウザでアクセス&ログイン
Redisの全key情報を取得して、値が帰ってきていればOK
keys *
後述
brew install redis
brew services start redis
redis-sentinel /usr/local/etc/redis-sentinel.conf
Redis
IP:127.0.0.1
PORT:6379
Sentinel
IP:127.0.0.1
PORT:6379
Master名:mymaster
動作確認方法
Sentinelへ接続
redis-cli -p 26379
Redisのmasterの情報を取得
sentinel masters
Sentinelと接続解除
quit
Redisへ接続
redis-cli -p 6379
Redisの全key情報を取得
keys *
cloud portal-wwwのTomcatを起動して、ブラウザでアクセス&ログイン
Redisの全key情報を取得して、値が帰ってきていればOK
keys *
後述
Sentinelへ接続
redis-cli -p 26379
Redisのmasterの情報を取得
sentinel masters
Sentinelと接続解除
quit
Redisへ接続
redis-cli -p 6379
Redisの全key情報を取得
keys *
cloud portal-wwwのTomcatを起動して、ブラウザでアクセス&ログイン
Redisの全key情報を取得して、値が帰ってきていればOK
keys *
最初はDockerを使って構築すればと考えていましたが
仮想ネットワーク(Macだとdocker0?)のために、Sentinelが回答するIPが
仮想のIPとなるためあきらめました。
解決のヒントとしては「Sentinelの設定値のANNOUNCE_IP」「Dockerのネットワークのhost network」あたりかなとは思ったのですが。。。
どなたかMac x DockerでSentinel構築したよというかたいれば教えてください。
追記
ログイン時にSentinelを自動起動させるには、以下のファイルを設置すれば可能となりました。
デフォルトインストールした場合に限ります。
~/Library/LaunchAgents/homebrew.mxcl.redis-sentinel.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>homebrew.mxcl.redis-sentinel</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/redis/bin/redis-sentinel</string>
<string>/usr/local/etc/redis-sentinel.conf</string>
<string>--daemonize no</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/usr/local/var</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/redis-sentinel.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/redis-sentinel.log</string>
</dict>
</plist>
Author And Source
この問題について(MacにSentinelをインストールする), 我々は、より多くの情報をここで見つけました https://qiita.com/tmasu/items/680518ff80f90c505faf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .