기술나눔

NoSQL REDIS 구성 및 최적화

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Redis 소개

Redis(Remote Dictionary Server)는 C 언어로 작성된 오픈 소스 NoSQL 데이터베이스로, 키-값 저장 형식을 사용해 메모리 기반으로 실행되며 지속성을 지원합니다. Redis는 고성능, 풍부한 데이터 유형 지원 및 원자성 작업으로 인해 캐싱, 실시간 분석 시스템, 순위 및 기타 시나리오에 널리 사용됩니다.
Redis 서버 프로그램은 단일 프로세스 모델입니다. 즉, 하나의 서버에서 여러 Redis 프로세스를 동시에 시작할 수 있으며 Redis의 실제 처리 속도는 전적으로 기본 프로세스의 실행 효율성에 따라 달라집니다. 서버에서 하나의 Redis 프로세스만 실행 중인 경우 여러 클라이언트가 동시에 액세스하면 서버의 처리 능력이 어느 정도 감소합니다. 동일한 서버에서 여러 Redis 프로세스가 열리면 Redis는 동시 처리 능력을 향상시킵니다. 동시에 서버의 CPU에 많은 부담을 주게 됩니다. 즉, 실제 프로덕션 환경에서는 실제 요구 사항에 따라 시작할 Redis 프로세스 수를 결정해야 합니다. 높은 동시성에 대한 요구 사항이 더 높은 경우 동일한 서버에서 여러 프로세스를 시작하는 것을 고려할 수 있습니다. CPU 리소스가 부족한 경우 단일 프로세스를 사용할 수 있습니다.

2. 리눅스에 Redis 설치

Linux에 Redis를 설치하는 방법은 주로 다음과 같습니다.

1. 패키지 관리자를 사용하여 설치

대부분의 Linux 배포판에서는 패키지 관리자를 사용하여 Redis를 직접 설치할 수 있습니다.예를 들어 Ubuntu 또는 Debian에서는 다음을 사용할 수 있습니다.apt-get주문하다:

bash复制代码

sudo apt-get update
sudo apt-get install redis-server

CentOS 또는 Red Hat에서는 다음을 사용합니다.yum주문하다:

bash复制代码

sudo yum update
sudo yum install redis

2. 소스 코드에서 컴파일 및 설치

또 다른 설치 방법은 Redis 공식 홈페이지에서 소스코드를 다운로드한 뒤 컴파일하고 설치하는 것이다. 다음과 같이 진행하세요:

  1. 컴파일 도구 설치

    먼저 gcc와 같은 컴파일 도구를 설치해야 합니다.CentOS 또는 Red Hat에서는 다음을 사용할 수 있습니다.yum설치하다:

    bash复制代码

    sudo yum install gcc-c++ make
  2. Redis 소스 코드 다운로드

    Redis 공식 웹사이트에서 최신 압축 패키지(예: redis-6.xxtar.gz)를 다운로드하세요.

  3. 컴파일 및 설치

    다운로드한 압축 패키지의 압축을 풀고 압축 해제 디렉터리로 들어간 후 컴파일 및 설치 명령을 실행합니다.

    bash复制代码

    tar zxvf redis-6.x.x.tar.gz
    cd redis-6.x.x
    make && make PREFIX=/usr/local/redis install
  4. Redis 서비스 구성

    Redis가 제공하는 것을 사용할 수 있습니다install_server.shRedis 서비스를 설정하거나 수동으로 구성하는 스크립트입니다.

3. Redis 구성 및 최적화

1. 구성 파일

Redis의 구성 파일은 일반적으로 다음과 같습니다.redis.conf, 이 파일을 수정하여 Redis의 다양한 매개변수를 구성할 수 있습니다.

  • 바인딩 주소 : 기본적으로 Redis는 로컬 인터페이스의 연결만 허용합니다.Redis가 다른 호스트의 연결을 허용하도록 하려면 다음을 수정해야 합니다.bind옵션을 선택하거나 해당 행을 주석 처리하세요.
  • 보호 모드 : Redis는 기본적으로 보호 모드에서 실행되며 127.0.0.1의 연결만 허용합니다. 보호 모드를 끄면 원격 연결이 가능해집니다.
  • 비밀번호 인증: 보안 강화를 위해 Redis 비밀번호를 설정할 수 있습니다.
  • 고집 : Redis는 RDB와 AOF라는 두 가지 지속성 메커니즘을 지원합니다. 구성 파일에서 옵션을 설정하여 지속성을 활성화할 수 있습니다.
  • 최대 메모리 한도: Redis의 최대 메모리 사용량과 최대 메모리 도달 시 제거 전략을 설정할 수 있습니다.

2. 성능 최적화

Redis 성능 최적화에는 주로 메모리 할당 제어, 교환 설정, 네트워크 연결 최적화 등이 포함됩니다.

  • 메모리 할당 제어

    리눅스 운영 체제에서vm.overcommit_memory 매개변수는 메모리 할당 전략을 제어합니다. Redis에서는 메모리가 부족한 상황에서도 분기 작업이 성공적으로 수행될 수 있도록 이 값을 1로 설정할 것을 권장합니다.

    bash复制代码

    echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
    sysctl vm.overcommit_memory=1
  • 교환성 설정

    swappiness 매개변수는 운영 체제의 스왑 사용 경향을 결정합니다. 높은 동시성과 높은 처리량이 필요한 애플리케이션의 경우 디스크 IO가 시스템 병목 현상을 일으킬 가능성을 줄이기 위해 스왑성을 더 낮은 값으로 설정하는 것이 좋습니다.

    bash复制代码

    echo "vm.swappiness=10" >> /etc/sysctl.conf
    sysctl vm.swappiness=10
  • 네트워크 연결 최적화

    안정적인 네트워크 연결을 보장하고 네트워크 지연 및 패킷 손실을 줄입니다.동시에 다음과 같은 Redis의 TCP 매개변수를 합리적으로 구성합니다.tcp-keepalive등 네트워크 연결의 안정성과 신뢰성을 향상시킵니다.

3. 모니터링 및 디버깅

  • Redis 상태 보기

    사용할 수 있다redis-cliRedis 서버에 접속하여 실행하는 명령어INFO메모리 사용량, 지속성 상태, 연결 수 등을 포함하여 Redis의 현재 상태를 보는 명령입니다.

  • 로그 파일 보기

    Redis 로그 파일은 일반적으로 다음 위치에 있습니다./var/log/redis/redis-server.log, 로그 파일을 보면 오류 정보와 실행 상태를 확인할 수 있습니다.