본문 바로가기
Database/Redis

[Redis] 리눅스 서버에서 Redis 설치하기

by AustinProd 2022. 3. 9.

해당 포스트에서는 레디스를 설치하고 접속하는 방법에 대해 소개하고자 한다. 설치 및 접속 환경은 Linux 이며, 그 중 Ubuntu 를 기준으로 작성하였다.

 

먼저, 레디스란 무엇인지, 또 어떤 목적으로 사용하는지에 대해 간단히 알아보자.

 

레디스(Redis)란?

레디스는 데이터베이스와 같이 데이터 저장소로서 기능한다. 다만, 저장하는 곳이 메모리(Memory)라는 점에서 일반 데이터베이스(Storage)와 차이가 있다. 하드 디스크(Storage)에서 데이터를 저장하거나 호출했을 때 보다 메모리(Memory)에서 데이터를 처리하기에 속도 측면에서 상당히 빠르다. 이러한 데이터 저장 방식을 인-메모리(In-Memory)라고 정의한다. 서버가 종료되거나 프로세스가 종료되지 않는 한, 레디스는 허용된 메모리 한계(Max Memory) 안에서 데이터를 캐싱(Caching)하여 메모리에 저장한다.

 

레디스의 데이터 저장 형식은 키-값(Key-Value) 기반이다. 데이터는 `Key : Value` 형식으로 저장하며, 데이터를 호출하는 방법은 찾고자하는 데이터와 매핑된 키값을 조회하는 형식으로 이루어진다. 그렇기 때문에 일반적인 관계형 데이터베이스에서 SQL을 사용하는 것과 같은 번거로움이 없다. 키(Key)는 단순 문자열 형식(String)이며, 값(Value)은 문자열(String), 리스트(Lists), 셋(Set), 정렬 셋(Sorted Set), 해쉬(Hashes)의 형식이다.

 

하드 디스크를 두고 레디스를 사용하는 이유는 데이터베이스에 집중된 부하를 분산할 수 있기 때문이다. 사용자가 늘어나면서 발생할 수 있는 중복된 요청이나 반복된 트렌젝션을 효율적으로 대응할 수 있게 돕는다. 같은 요청(Request 혹은 Transaction)을 메모리에 캐싱(Caching)처리하고 이를 활용하면 데이터베이스에 집중될 수 있는 부하를 메모리 영역에서 분산시켜 처리할 수 있다. 결과적으로 서버에 부담이 줄어들게 되는 것이다.

 

이러한 특징이 있는 레디스는 주로 중복될 수 있는 요청에 대한 캐시 데이터 저장(예를 들어, 인증 토큰 저장이나 랭킹 게시판 등)을 구현하는데 효과적이다.

 

 

Redis 동작 원리 (MySQL 공식 웹 사이트 참조)

 

레디스 설치 및 설정

이제 본격적으로 Ubuntu 환경에서 레디스를 설치해자. 아래 내용은 패키지 설치와 기본 환경(config) 설정에 대한 내용이다.

우선, 패키지 관리 툴(apt)에 대한 최신화 작업이 필요하다.

 

  sudo apt-get update
  sudo apt-get upgrade

 

패키지 관리 도구로부터 redis-server를 다운로드하고, 잘 설치가 되었는지 버전을 확인한다.

 

    # 설치
    sudo apt-get install redis-server

    # 설치(버전) 확인
    redis-server --version

 

버전까지 잘 확인했으면, 기초적인 설정을 잡아줘야한다.

 

수정할 내용은 최대 사용 메모리 용량, 메모리 초과 사용 시 데이터 후처리, 실행 포트 설정, 외부접속 허용, 접속 암호 설정 등이 있다. redis.conf 파일에 접근하여 진행하며, 해당 설정값은 주석처리된 부분을 해제하고 값을 입력하는 형식으로 진행된다.

 

외부접속 허용, 암호 설정은 선택사항이니 필요에 따라 참고하면 되겠다.

 

    # vi 편집기로 설정 파일 조회(redis.conf)
    sudo vi /etc/redis/redis.conf

    # 최대 메모리 사양
    # ->    최대 사용 메모리 사양을 256mb로 설정한다. 단위는 mb나 g 등 필요에 맞춰 적어주면된다.
    maxmemory 256mb            

    # 메모리 초과 사용 시 후처리 방식 설정
    # ->    지금 설정한 allkeys-lru 옵션은 가장 오래된 데이터를 삭제하고, 새로운 데이터를 저장하는 옵션이다.
    maxmemory-policy allkeys-lru

    # 프로세스 포트
    # ->    port 부분은 초기에 주석처리가 되어 있는데, 디폴트 값으로 6379 포트에서 동작한다. 
    # ->    만약, 6379가 아닌 다른 포트를 설정하고 싶다면 주석을 해제하고 포트번호를 입력하면된다.
    port 1234

    # 외부접속 허용
    # ->    기본 실행 환경은 localhost(127.0.0.1)로 되어있다.
    # ->    만약, 모든 외부접속에 대한 허용을 하고 싶다면, 0.0.0.0 으로 변경하면 된다.
    bind 0.0.0.0

    # 비밀번호 설정
    # ->    서버 접속에 비밀번호를 적용시키고 싶다면 아래와 같이 수정하자.
    requirepass [접속 패스워드 입력]

    # 암호화된 비밀번호가 필요하다면, 터미널에 다음 명령어로 생성 가능하다.
    echo "MyPassword" | sha256sum

 

기본적인 레디스 실행환경 설정은 여기까지다. 설정값 수정이 완려되었다면, :q! 명령어로 vi 에디터를 빠져나오면 된다.

 

이제 마지막으로 수정된 설정이 적용될 수 있도록 레디스를 재실행하고, 프로세스 리스트를 띄워봄으로서 실행이 정상적으로 잘 되는지 확인만하면 된다.

 

    # 레디스 프로세스 재시작
    sudo systemctl restart redis-server.service

    # 실행확인
    netstat -tnlp | grep [레디스 실행포트]

 

다음 포스트로 레디스 커멘드라인 인터페이스에 접속하는 방법과 데이터 조회 명령어들에 대해 알아보도록 하겠다.

'Database > Redis' 카테고리의 다른 글

[Redis] 레디스 CLI 접근 및 데이터 조회  (0) 2022.03.10

댓글