kenken0807_DBメモ

つば九郎が好きなDBAです。Oracle Standard Editionでの運用やツールとかとかの備忘録。特に記載がない場合はoracle11gR2です。時々MySQL

redis3.2.0以降はprotect-modeが有効

最近勉強中のredis。
redis3.2.0以降はデフォルトprotect-modeが有効になっているようで、bindrequirepassが設定されていない場合
他端末から接続しようとすると↓のメッセージが表示されて情報取得できない。

# redis-cli -h 192.168.1.1 -p 6379 info

DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no
 authentication password is requested to clients. In this mode connections are only accepted from the loopback
 interface. If you want to connect from external computers to Redis you may adopt one of the following solutio
ns: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interf
ace by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly a
ccessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you c
an just disable the protected mode by editing the Redis configuration file, and setting the protected mode opt
ion to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart i
t with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only
 need to do one of the above things in order for the server to start accepting connections from the outside.

ただこの状態でもレプリケーションはちゃんとできている。

そんな場合はconfigファイルにprotected-mode noを記述するか。
起動オプションに--protected-mode noを追加する。

redis-server /etc/redis.conf  --protected-mode no
  • sentinelを入れている場合も同様
redis-server /etc/sentinel.conf --sentinel --protected-mode no

sentinelの場合は--protected-mode noをつけてないとsentinel間の通信ができずフェールオーバーができないので注意。