REDIS 설치가이드

1. 개요

1-1. 목적

본 문서는 (주)유라클에서 제공하는 모피어스 제품군 중 “MSP Server Platform - Push”의 원활한 설치를 할 수 있도록 제품 설치에 관련한 설명과 수행 절차를 나타내는 것을 목적으로 한다. 본 문서는 Push 기능 중 Redis 설치에 관한 내용을 기술하고 있다.

1-2. 고려 사항

본 문서는 성능 개선, 기능 추가 등의 사항으로 내용이 변경 될 수 있다.

2. REDIS 서버 구성도

2-1 REDIS 서버 구성 개념도

image4

2-2 구성 요소

Server

주요 역할

주요 기능

REDIS

REDIS MASTER SERVER

REDIS SLAVE1 SERVER

REDIS SLAVE2 SERVER

MEMORY DB

사용자정보 저장

REDIS

SENTINEL

REDIS SENTINEL1

REDIS SENTINEL2

REDIS SENTINEL3

REDIS MASTER<->

REDIS SLAVE1,2 간

MASTER SLAVE 관리

3. REDIS 설치

3-1 REDIS설치

  • 설치를 할 서버에 로그인

  • 설치 파일을 설치할 디렉토리에업로드한다.

    ex) redis-3.0.7.tar.gz

  • 압축을 해제한다.

    ex) tar xvzf redis-3.0.7.tar.gz

  • cd redis-3.0.7/ 메인폴더 이동

  • redis-3.0.7/make

  • redis-3.0.7/make install

  • 06.REDIS/redis-start.sh, 06.REDIS/redis-stop.sh,

    06.REDIS/sentinel-start.sh, 06.REDIS/ sentinel-stop.sh

    (release 폴더 참조)

    4개의 파일 모두 redis-3.0.7/ 폴더에 복사

3-2. REDIS 핵심 파일 목록

파일 경로

설명

redis.conf

redis설정파일

src/ redis-server

Redis 실행파일

sentinel.conf

Redis-sentinel 설정파일

src/redis-sentinel

Redis Sentinel 실행파일

redis-start.sh

Redis 실행 스크립트

redis-stop.sh

Redis 중지 스크립트

sentinel-start.sh

Sentinel 실행 스크립트

sentinel-stop.sh

Sentinel 중지 스크립트

4. 설정

4-1. REDIS MASTER 설정

$ vi redis.conf

logfile “redis-3.0.7/logs/redis.log”

redis 로그파일 위치 (mkdir logs - logs폴더 생성)

appendonly yes

메모리 디스크에 저장여부

bind 내부IP

주의!!!! 보안상 반드시 내부 IP사용

appendfsync everysec

메모리 디스크에 저장 주기

no : os가 자동으로 저장(가장빠름)

always : redis update마다 저장(가장느림)

everysec: 매 초당 redis update 내용저장(보통)

4-2. REDIS SLAVE 설정

$ vi redis.conf

logfile “redis-3.0.7/logs/redis.log”

redis 로그파일 위치 (mkdir logs - logs폴더 생성)

appendonly yes

메모리 디스크에 저장여부

bind 내부IP

주의!!!! 보안상 반드시 내부 IP사용

appendfsync everysec

메모리 디스크에 저장 주기

no : os가 자동으로 저장(가장빠름)

always : redis update마다 저장(가장느림)

everysec: 매 초당 redis update 내용저장(보통)

slaveof 11.22.33.44 6379

마스터 IP PORT 입력

4-3. REDIS-SENTINEL 설정

$ vi sentinel.conf

sentinel monitor mymaster <master_ip> <master_port> <quorum>

Redis master 설정

<master_ip> : redis master ip

<master_port> : redis master port

<quorum> : failover처리에대한 sentinel 투표 수

logfile “redis-3.0.7/logs/redis.log”

Sentinel log 위치 설정((mkdir logs - logs폴더 생성))

5. 실행 및 확인

5-1. REDIS MASTER 실행 및 확인

  • REDIS 마스터 redis-3.0.7/ 로 이동

# ./redis-start.sh <- redis실행

# redis-cli <- redis접속

127.0.0.1:6379> info <- redis정보확인

아래와같이 MASTER이며 접속된 SLAVE 정보를 확인 할 수 있다.

image1

5-2. REDIS SLAVE 실행 및 확인

  • 슬레이브 REDIS redis-3.0.7/ 로 이동

# ./redis-start.sh <- redis실행

# redis-cli <- redis접속

127.0.0.1:6379> info <- redis정보확인

아래와같이 SLAVE이며 접속한 MASTER 정보를 확인 할 수 있다.

image2

5-3. REDIS-SENTINEL 실행 미 확인

  • 각 REDIS redis-3.0.7/ 로 이동

# ./sentinel-start.sh <- redis실행

# vi ./sentinel.conf

아래와같이 REDIS SLAVE 정보, 다른 SENTINEL 정보를 확인 할 수 있다

image3

6. 유용한 REDIS 명령어

  • REDIS 접속
    명령어 : redis-cli
    ex) redis-cli
  1. Database 선택
    명령어 : select [database]
    ex) select 9
  2. KEY 테이블 전체 조회
    명령어 : keys [database] (**** keys 명령어를 사용하면 full scan일 발생됨으로 redis lock 가 발생. 서비스 중 사용을 권장하지 않음.)
    ex) keys *
  3. HASHKEY 테이블 한껀 Value 정보 가져오기
    명령어 : hget [해시키테이블명] [조회할 키명]
    ex) hget com.uracle.push.test:CUID test01
  4. HASHKEY 테이블 전체 Value 정보 가져오기
    명령어 : hgetall [해시키테이블명]
    ex) hgetall com.uracle.push.test:CUID
  5. HASHKEY 테이블에서 Key 검색하기
    명령어 : hscan [해시키테이블명] [database] [MATCJ 검색어] [COUNT 검색ROW 수]
    ex) hscan com.uracle.push.test:PUSHUSER 9 MATCH a23* COUNT 3
  6. HASHKEY에 저장된 SIZE 조회하기

    명령어 :hlen [해시키테이블명]

    ex) hlen com.uracle.push.test:PUSHUSER