redis3.2.0以降はprotect-modeが有効
最近勉強中のredis。
redis3.2.0以降はデフォルトprotect-modeが有効になっているようで、bind
とrequirepass
が設定されていない場合
他端末から接続しようとすると↓のメッセージが表示されて情報取得できない。
# 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間の通信ができずフェールオーバーができないので注意。