Redis 란 ?

Redis는 NO Sql의 일종으로 기존 MySQL, Maria DB와는 다르게 In Memory를 사용하여 많은 장점이 있다.
처리 속도가 빠르다.

  • 당연히 데이터가 메모리+Disk에 저장된다. 그러나, 속도는 Memcached와 큰 차이가 없다.

데이터가 메모리+Disk에 저장된다.

  • 프로세스가 죽거나 장비가 Shutdown되더라도 Data의 복구가 가능하다

만료일을 지정하여 만료가 되면 자동으로 데이터가 사라진다.

  • 동일한 기능을 지원한다.

저장소 메모리 재사용 하지 않는다.

  • 명시적으로만 데이터를 제거할 수 있다.

 

Redis 설치 과정

:: 내부 IP에 대해선 10.xxx.xxx.xxx 로 마스킹 처리 하였습니다. 서버에 맞게 수정 바랍니다.

 

1 . Redis 설치

  • redis를 /home1/username/apps/redis 경로로 설정하기 위해, make install 파라미터 로써 "PREFIX=/home1/username/apps/redis install" 를 추가하여주었다.
cd /home1/username/stage/

sudo wget http://download.redis.io/releases/redis-4.0.8.tar.gz

sudo tar xvzf redis-4.0.8.tar.gz

cd redis-4.0.8

sudo make PREFIX=/home1/username/apps/redis install

sudo mkdir -p /home1/username/apps/redis/etc

 

2. Redis 설정

redis 소스 디렉토리에 있는것을 복사하는 방법도 좋지만, redis 설치패키지에 포함된 sh 스크립트를 사용하여주자

  • Util로 Redis 자동 구성
sudo /home1/username/stage/redis-4.0.8/utils/install_server.sh

# 아래와 같이 순서대로 설정 
Port           : 6379
Config file    : /home1/username/apps/redis/etc/6379.conf
Log file       : /home1/username/apps/redis/logs/redis_6379.log
Data dir       : /home1/username/apps/redis/data/6379
Executable     : /home1/username/apps/redis/bin/redis-server
Cli Executable : /home1/username/apps/redis/bin/redis-cli
  • conf 수정
cd /home1/username/apps/redis/etc/

...
vi 6379.conf
# 메모리 설정
maxmemory 1024*1024*1024*10
bind 127.0.0.1 10.XXX.XXX.XXX(내부아이피로 기재)
...
  • Q&A ) bind 설정값에 따른 차이점은 ?
    ㄴ conf 속성중 하나인 bind는 아래 규칙을 따릅니다.

    bind 127.0.0.1 로 설정시 - 127.0.0.1로 접속하는 클라이언트만 접근가능. 즉 내부 클라이언트에서만 접속 가능.
    bind 127.0.0.1 10.XXX.XXX.XXX(내부아이피) - 내부 클라이언트와, 내부망으로 연결된 모든 클라이언트에서 접속 가능.
    bind 0.0.0.0 or 주석처리 - 모든 ip에서 접속 허용(ifconfig 상 설정된 모든 ip에서 접속 가능). 권장하지 않음.

 

2-1. Redis 를 Master - Slave 추가 구성 하고 싶은 경우.

  • port의 경우 서버 상황에 맞게 수행하여 주세요.
sudo /home1/username/stage/redis-4.0.8/utils/install_server.sh

# 아래와 같이 순서대로 설정
Port           : 6389
Config file    : /home1/username/apps/redis/etc/6389.conf
Log file       : /home1/username/apps/redis/logs/redis_6389.log
Data dir       : /home1/username/apps/redis/data/6389
Executable     : /home1/username/apps/redis/bin/redis-server
Cli Executable : /home1/username/apps/redis/bin/redis-cli
  • conf 수정
cd /home1/username/apps/redis/etc/

vi 6389.conf
maxmemory 1024*1024*1024*5
bind 127.0.0.1 10.XXX.XXX.XXX(내부아이피로 기재)

slaveof 10.XXX.XXX.XXX 6379 (Master의 Redis 인스턴스)
or slaveof 127.0.0.1 6379

 

3. Redis 중지 / 실행

중지

sudo /etc/init.d/redis_6389 stop
sudo /etc/init.d/redis_6379 stop

실행

sudo /etc/init.d/redis_6379 start
sudo /etc/init.d/redis_6389 start

 

Redis 구동 테스트 

  • 방법 1) Redis-CLI 활용

/home1/username/apps/redis/bin/redis-cli

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set abc 123
OK
127.0.0.1:6379> get abc
"123"
127.0.0.1:6379> monitor
OK
...
...

 

  • 방법 2) telnet 활용

# at Master
telnet 10.xxx.xxx.xxx 6379
set test test

# at Slave
telnet 10.xxx.xxx.xxx 6389
monitor
...
...
+1579754709.406515 [0 10.xxx.xxx.xxx:6379] "PING"
+1579754659.538290 [0 10.xxx.xxx.xxx:6379] "set" "test" "test"
+1579754709.406515 [0 10.xxx.xxx.xxx:6379] "PING"

 

+ Recent posts