카테고리 없음

[Redis] 레디스 Windows에서 설치 및 구동하기(standalone, cluster)

프뚜 2023. 10. 19. 14:57
728x90
반응형
SMALL

안녕하세요. 프뚜입니다!

Windows 환경에서 Redis Standalone & Cluster 설정에 대해 포스팅하려고 합니다.

1. Redis Standalone 실행

2. Redis Standalone Slave 연동

3. Redis Cluster 실행

4. Redis Cluster Slave(Replica) 연동


# Redis 설치하기(링크)

Windows 환경이기 때문에 Redis-x64.3.0.504.zip을 다운 받습니다.

(프뚜는 Latest 버전 3.0.504을 다운 받았습니다.)

 

 

알집을 해제하면 위와 같은 파일들이 보입니다.


# Redis Standalone Config 설정하기

...
dir C:\Users\Administrator\Desktop\redis
...
port 6379
...
bind 0.0.0.0 ::1
...

redis.windows.conf 파일을 열어서 해당 내용을 수정합니다.

dir: redis config, logs 등 default 경로 설정

port: redis 접근 port

bind: redis 접근 ip 할당

많은 config가 있지만 standalone이 defualt 설정이기 때문에 크게 수정 할 내용은 없습니다.

 

 

redis-server.exe redis.windows.conf 명령어를 통해 서버를 실행합니다.

 

 

정상적으로 6379 port로 redis가 구동됐습니다.

 

 

redis-cli.exe -p 6379 명령어로 redis에 접속합니다.

 

 

set 명령어를 통해 key, value 값을 입력 후 get 명령어를 통해 name value를 응답받습니다.


# Redis Standalone Slave 설정하기

master(6379)의 redis가 비정상 종료가 되었을 때 redis의 모든 데이터(메모리)를 손실하게 됩니다. 이를 방지하고자 slave(replica) 설정을 합니다. slave는 read만 가능한 특징이 있습니다.

...
dir C:\Users\Administrator\Desktop\redis
...
port 6380
...
bind 0.0.0.0 ::1
...
slaveof 127.0.0.1 6379
...

redis.windows.conf 파일을 열어서 해당 내용을 수정합니다.

dir: redis config, logs 등 default 경로 설정

port: redis 접근 port

bind: redis 접근 ip 할당

slaveof: <masterIP> <masterPort>

 

 

redis-server.exe redis.windows.conf 명령어를 통해 서버를 실행합니다.

 

 

정상적으로 6380 port로 redis(slave)가 구동됐습니다.

 

 

redis-cli.exe -p 6380 명령어로 redis에 접속합니다.

 

 

info Replication 명령어로 role 확인 시 slave로 생성됨을 확인할 수 있습니다.

 

 

master(6379)에 있는 데이터 sync가 제대로 들어가 있습니다.

 

 

redis-cli.exe -p 6379 shutdown 명령어로 master(6379)를 종료합니다.

redis-cli.exe -p 6380 명령어로 slave에 접속 후 get name 명령어 실행 시 이상 없이 사용이 가능합니다.


# Redis Cluster 설정하기

windows에서 redis cluster 설정하기 위해선 여러가지 사전 작업이 필요합니다.

RubyInstaller 페이지로 이동 후 WITHOUT DEVKIT 메뉴의  Ruby 3.2.2-1(x64)를 다운 받습니다.

 

 

다운 받은 파일을 실행 후 설치합니다.

 

 

명령프롬프트에 gem install redis 명령어를 통해 redis를 설치합니다. (redis-cli를 쓰기 위함)

 

 

링크로 이동하여 Ctrl + S로 파일을 저장합니다. 파일명은 redis-trib.rb로 저장합니다.

 

 

...
dir C:\Users\Administrator\Desktop\redis
...
port 포트입력
...
bind 0.0.0.0 ::1
...
cluster-enabled yes
...
cluster-config-file nodes-포트입력.conf
...

redis.windows.conf 파일을 열어서 해당 내용을 수정합니다.

dir: redis config, logs 등 default 경로 설정

port: redis 접근 port

bind: redis 접근 ip 할당

cluster-enable: 클러스터 사용 여부

cluster-config-file: 클러스터 세팅 시 conf가 출력될 파일명

 

cluster는 master node가 3개가 있어야합니다. master1(7000), master2(7001), master3(7002)으로 port를 수정하고 conf를 저장합니다. 또한 cluster 시 서로 클러스터링을 하기 위해 지정한 포트 + 10,000 port를 사용합니다.

예) 7000 port의 클러스터링 port는 17000입니다.

 

 

master1(7000), master2(7001), master3(7002)을 실행합니다.

 

 

3개의 cluster mode redis 서버가 실행됐습니다. 

 

 

ruby redis-trib.rb create --replicas 0 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 명령어를 통해 master1~3을 클러스터링합니다.

 

 

redis-cli.exe -c -p 7000 명령어로 master에 접속합니다. standalone에서는 -c옵션이 없었지만, cluster 환경에서는 -c 옵션을 입력해야합니다.

 

 

master1(7000)에 접속해서 데이터를 입력했으나, name의 키는 5798 slot에 적재되기 때문에 master2(7001)로 이동됨을 확인할 수 있습니다.


# Redis Cluster Slave 설정하기

...
dir C:\Users\Administrator\Desktop\redis
...
port 포트입력
...
bind 0.0.0.0 ::1
...
cluster-enabled yes
...
cluster-config-file nodes-포트입력.conf
...

master1(7000), master2(7001) , master3(7002), slave1(7010), slave2(7011) , slave3(7012) conf를 생성한 후 redis를 실행합니다. (서버 실행 방법은 위 내용 참고바랍니다.)

 

 

ruby redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7010 127.0.0.1:7011 127.0.0.1:7012

명령어를 통해 master와 slave을 생성합니다. --replicas 1은 한 쌍의(3개) slave를 생성합니다.


redis 관련된 내용은 이전 포스팅에도 자세하게 했으나, windows 세팅은 linux 환경과 실행 시 다른 부분이 있어서 포스팅하게 되었습니다.

728x90
반응형
LIST