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를 중단하는 방법을 사용할 수 있다.
이를 위해서 해당 설정이 존재한다.
'Redis' 카테고리의 다른 글
[redis] redis 3.2 에서 포트 접근시 DENIED Redis is running in protected mode 발생 (0) | 2016.12.31 |
---|---|
[redis cluster] 자주 쓰는 기본 커맨드 (0) | 2016.06.22 |
[redis] 리눅스 메모리 설정 관련 확인하는 코드 - 메모리 오버커밋, THP (0) | 2016.03.06 |
[redis] BRPOP, BLPOP, BRPOPLPUSH (0) | 2016.03.02 |
[redis] 낙관적 잠금(optimistic lock) (0) | 2016.02.29 |