본문 바로가기

[개발자를 위한 레디스] 2장 레디스 시작하기

@bum0w02025. 8. 27. 17:49

레디스 설치하기

wget을 사용해 Redis 7.0.8 소스 패키지 다운로드 (해당 실습에서 레디스 7 버전을 사용)

# 특정 버전(7.0.8)을 명시적으로 다운로드
$ wget http://download.redis.io/releases/redis-7.0.8.tar.gz

# 최신 안정(stable) 버전을 다운로드
$ wget http://download.redis.io/redis-stable.tar.gz

 

실습 환경 - macOS

# Homebrew를 사용해 GCC 설치
$ brew install gcc

# 다운로드한 Redis 압축 해제
$ tar -zxvf redis-7.0.8.tar.gz

# 디렉토리 이름 변경
$ mv redis-7.0.8 redis

# Redis 디렉토리로 이동
$ cd redis

# Redis 컴파일
$ make
Redis를 설치하는 과정에서 예상치 못한 컴파일 에러가 발생한 경우 이 글을 참고해주세요.

 

 

위 과정까지 진행하면 Redis 소스 코드 컴파일까지 완료된 상태

즉, make 명령어를 통해 Redis 실행 파일(redis-server, redis-cli 등)이 생성된 상태이고, 아직 시스템에 설치된 것은 아님

 

이제 생성된 실행 파일을 원하는 디렉토리에 설치하기 위해 다음 명령어를 실행해야 함

꼭 Redis 소스 디렉토리 안에 설치할 필요는 없기 때문에, 사용자가 접근하기 편한 디렉토리 경로로 설치

Ex) /usr/local/bin이나 ${HOME}/redis

# PREFIX= 뒤에 지정한 경로에 Redis 실행 파일과 관련 파일이 설치됨
$ make PREFIX=${redis 디렉터리 경로}/redis install

 

이후 redis 디렉토리로 이동하면 bin 디렉토리가 생성된 것을 확인할 수 있다.

$ cd ~
$ cd redis
$ ls

 

 bin 디렉토리에는 다음과 같은 실행 파일들이 있는데 간단히 정리하면 아래와 같다.

  • redis-server → Redis 서버 실행, 실제 Redis 구동
  • redis-cli → Redis 클라이언트, 터미널에서 명령어 입력 가능
  • redis-sentinel → Redis Sentinel 실행, 클러스터 모니터링 및 자동 장애 조치
  • redis-benchmark → Redis 성능 측정, 명령어 처리 속도 테스트
  • redis-check-aof → AOF 파일 점검 및 복구
  • redis-check-rdb → RDB 파일 점검 및 복구

설치 후에는 ${설치한_경로}/bin/redis-server 또는 ${설치한_경로}/bin/redis-cli 형태로 실행할 수 있는데, 터미널 어디서든 redis-server를 실행할 수 있도록 PATH 환경 변수를 추가하면 편리하다.

$ echo 'export PATH=$HOME/redis/bin:$PATH' >> ~/.zshrc
$ source ~/.zshrc
redis-server → 데이터베이스 서버를 실행할 때 사용 (데이터를 저장하고 요청을 처리)
redis-cli → 서버에 명령을 보내고 결과를 확인할 때 사용 (명령어를 보내거나 데이터를 조회, 조작)

 

실행화면

 

MacOS에서 Homebrew 패키지 매니저를 통해 redis를 설치하는 방법도 있다.

# redis 설치
$ brew install redis

# redis 구동
$ brew services start redis

 

 

 

레디스 환경 구성

이전에 실행시킨 레디스 프로세스를 중지시키고 설정 파일을 변경해보자.

 

서버 환경 설정 변경

  • Open files 확인
    • Redis 기본 maxclients 값은 10000
    • 예약 파일 32개이므로, maxclients + 32 보다 서버의 최대 파일 디스크립터 수가 커야한다. (더 작으면 조정해야 함)
  • THP 비활성화
    • 커맨드로 비활성화 가능 (리눅스 환경별 다를  있음)
  • vm.overcommit_memory = 1로 변경
    • Redis 프로세스 실행 도중 메모리를 순간적으로 초과할 상황에 대비
  • somaxconn과 syn_backlog 설정 변경
    • Redis의 기본 tcp-backlog 값은 511
    • 서버 OS 설정이 최소 이 값 이상이 되도록 설정해야 함

 

레디스 설정 기본 값

  • port: 6379
    • Redis 기본 포트
  • bind: 127.0.0.1 -::1
    • 로컬호스트(localhost)에서만 접근 허용 (외부 접속 차단)
  • protected-mode: yes
    • 보안 모드 활성화 (bind 없이 실행 시 외부 접근 차단)
  • requirepass / masterauth: 없음
    • 기본적으로 비밀번호 인증 없음 (직접 설정 필요)
  • daemonize: no
    • 기본적으로 포그라운드(foreground) 실행 (백그라운드 실행 원하면 yes로 변경)
  • dir: ./
    • 현재 디렉토리를 데이터 저장 경로로 사용

 

레디스 실행하기

# 프로세스 시작 (redis.conf 설정 파일을 적용하여 Redis 서버 실행)
$ redis-server redis.conf

# 프로세스 종료 (클라이언트 프로그램인 redis-cli에서 서버에 명령을 보내서 서버 종료를 요청)
$ redis-cli shutdown
위에서 환경변수를 설정하지 않았다면, 현재 위치에서 (redis 디렉토리에서) bin/redis-server redis.conf
  • $ redis-server redis.conf → Redis 서버 프로세스 실행 (설정 파일 적용해서 서버를 띄움)
  • $ redis-cli shutdown → 클라이언트(redis-cli) 를 사용해서 서버 종료 명령을 보낸 것

 

레디스 접속

# 옵션이 없다면 기본값으로 할당
$ redis-cli -h ${ip주소} -p ${포트번호} -a ${비밀번호}

-h → 기본값 127.0.0.1

-p → 기본값 6379

-a → 비밀번호가 없으면 인증 없이 접속

 

 

데이터 저장과 조회

Redis 서버에 실제로 키-값을 저장하고 조회해본 예시

 

bum0w0
@bum0w0 :: bum0w0 님의 블로그

bum0w0 님의 블로그 입니다.

목차