* redis master
redis conf 를 확인 한다. redis_master_conf.rtf
# 붙은 것은 주석 이기 때문에 신경을 쓰지 않아도 된다. (제거 가능)
daemon 설정 / pid , log path 등등 설정이 있다.
redis-server binary 를 사용하여 해당 conf 를 지정 후 redis 를 실행한다.
# 실행 ./redis-server redis1.conf
# 확인 ps -ef | grep redis ./redis-server 0.0.0.0:6379
# 접속 redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> info Replication # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:104857600 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
* 처음 실행시 role:master 를 확인 할수 있다.
* redis slave
master conf 에 slaveof option 만 추가로 설정 하면 된다.
# redis slave conf ..
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
..
# 실행 ./redis-server redis2.conf
# 확인 ps -ef | grep redis ./redis-server 0.0.0.0:6379 ./redis-server 0.0.0.0:6380
# 접속 redis-cli -h 127.0.0.1 -p 6380 127.0.0.1:6380> info Replication # Replication role:slave master_host:127.0.0.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_repl_offset:729 slave_priority:300 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:104857600 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
* master 에 접속 하여 slave 확인
# master 접속 redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> info Replication # Replication role:master connected_slaves:1 slave0:ip=127.0.0.1,port=6380,state=online,offset=1345,lag=1 master_repl_offset:1345 repl_backlog_active:1 repl_backlog_size:104857600 repl_backlog_first_byte_offset:2 repl_backlog_histlen:1344
# Data Replication 확인
# master redis 에 abc key name 으로 123 값을 저장함
redis-cli -h 127.0.0.1 -p 6379 set abc 123 OK
# redis slave 접속 후 data 확인
redis-cli -h 127.0.0.1 -p 6380 get abc "123"
* 정상적으로 master 에 입력한 data 를 slave 에서 확인이 가능 하다.
이러한 구성은 redis 의 traffic 을 분산 하는데 좋은 구성이 된다. 하지만 오직 master 만 write 를 할수 있기 때문에 redis master 가 down이 되면 master 를 못하는 문제점이 있다.
그래서 redis-sentinel 이라는 app 이 존재한다. redis-sentinel 은 redis master 를 감시하다가 master 가 down 이 되면 redis slave 를 master 로 승격하는 역활을 한다.
'기술 > Redis' 카테고리의 다른 글
Redis protocol file 생성 (python) (0) | 2019.02.28 |
---|---|
Redis master / slave (0) | 2019.01.31 |
Redis 는 무엇 (0) | 2019.01.31 |