[redis] slave-read-only

Redis 2016. 3. 9. 11:25


redis 3.0.2에서 테스트한 정보이며, 

레디스 슬레이브 서버 공식 페이지(http://redis.io/topics/admin)에서 반드시 명시하고 있는 내용인데.. 테스트해본 것이다.


  • Allow writes to the slave using CONFIG SET slave-read-only no






레디스 슬레이브 서버에서 info 명령어를 내려면, 슬레이브의 상태는 slave_read_only이다.

> info

slave_read_only:1


슬레이브 서버에 redis-cli로 접속해서 값을 저장하려면 안된다고 에러 문구가 뜬다.


> set key value

(error) READONLY You can't write against a read only slave.




그러나, slave_read_only 값으로 이 상태를 바꿀 수 있다.


> config set slave-read-only no

OK

> set slave true

OK



마스터에 해당 값을 요청을 해보면, (nil)로 나오고, 슬레이브에 요청하면 이전에 저장한 slave의 값을 볼 수 있다. 


~$ redis-cli -p 마스터포트 get slave

(nil)

~$ redis-cli -p 슬레이브포트 GET slave

"true"



마스터와 슬레이브간의 일관성을 중요시 여기기 때문에 slave_read_only의 기본 값이 yes인 것인데, 

따라서, slave_read_only 값을 굳이 바꿀 필요가 없다. 




참고

상황에 따라서... 레디스 슬레이브이지만, master로 변경하는 과정에서 사용할 수 있다.

그 때는 CONFIG SET  slave_read_only no로 변경해서 쓰기를 받아들이고, master를 중단하는 방법을 사용할 수 있다.
이를 위해서 해당 설정이 존재한다.



Posted by '김용환'
,