* 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

+ Recent posts