LoginSignup
1
0

More than 5 years have passed since last update.

MacにSentinelをインストールする

Last updated at Posted at 2018-02-09

背景

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 *

後述

最初は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>
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0