Debian 12, 11, 10에 Redis를 설치하는 방법

Redis는 데이터베이스, 캐시 및 메시지 브로커로 널리 사용되는 오픈 소스, 인 메모리 데이터 구조 저장소입니다. 높은 성능과 유연성으로 인해 다양한 기술 분야에서 인기 있는 선택이 되었습니다. 이 가이드는 Debian 12 Bookworm, Debian 11 Bullseye 또는 Debian 10 Buster에 Redis를 설치하려는 경우에 적합합니다.

Redis의 주요 기능

  • 빠른 데이터 액세스: Redis는 데이터를 메모리에 저장하므로 빠른 검색이 가능합니다. 이는 캐싱 애플리케이션에 이상적입니다.
  • 다중 데이터 구조: 기존의 테이블 기반 데이터베이스와 달리 Redis는 문자열, 해시, 목록, 집합 등 다양한 데이터 구조를 지원합니다.
  • 실시간 메시징: Redis는 게시/구독 메시징 패턴을 제공하여 실시간 애플리케이션 통신을 가능하게 합니다.
  • 데이터 지속성: Redis는 주로 인메모리 데이터베이스이지만 디스크에 정기적으로 데이터를 저장할 수 있어 속도와 내구성 간의 균형을 제공합니다.
  • 확장성 및 가용성: 복제, 샤딩, Redis Sentinel과 같은 기능은 여러 노드에서 고가용성과 확장성을 보장합니다.

Redis의 일반적인 사용 사례

  • 캐싱: Redis는 일반적으로 자주 액세스하는 데이터를 캐시하여 검색 시간을 단축하는 데 사용됩니다.
  • 세션 저장: 특히 트래픽이 많은 웹 애플리케이션에서 사용자 세션 데이터를 저장하는 데 적합합니다.
  • 메시지 큐: 게시/구독 기능 덕분에 Redis는 메시지 대기열 시스템을 위한 탁월한 선택입니다.

Redis의 기능을 이해하면 기술 스택이 크게 향상될 수 있습니다. 다가오는 가이드에서는 Debian 12 Bookworm, Debian 11 Bullseye 또는 Debian 10 Buster에 Redis를 설치하는 방법을 자세히 설명합니다. 두 가지 설치 방법을 다룰 것입니다. 하나는 Debian의 기본 저장소를 사용하는 것이고 다른 하나는 최신 버전의 공식 Redis 저장소를 사용하는 것입니다. 두 방법 모두 CLI(명령줄 인터페이스) 명령을 사용합니다. 단계별 지침을 계속 지켜봐 주시기 바랍니다.

Redis 설치를 통한 사전 설치 단계

데비안 시스템 패키지 업데이트

Redis 또는 기타 소프트웨어를 설치하기 전에 초기 단계는 시스템 패키지가 최신 상태인지 확인하는 것입니다. 이 중요한 예비 단계는 후속 설치 프로세스 중 잠재적인 충돌을 완화하는 데 도움이 됩니다. 모든 시스템 종속성을 최신 상태로 유지하여 오래된 소프트웨어 패키지로 인해 발생하는 잠재적인 문제를 최소화합니다.

Debian 시스템에서는 터미널에서 다음 명령을 실행하여 이를 수행할 수 있습니다.

sudo apt update && sudo apt upgrade

Redis 설치에 필요한 패키지 설치

Debian 시스템 패키지가 최신 버전이면 Redis 설치에 필요한 특정 소프트웨어 패키지를 설치해야 합니다.

다음 명령을 실행하여 이러한 패키지를 설치할 수 있습니다.

sudo apt install software-properties-common apt-transport-https curl ca-certificates -y

더 잘 이해하기 위해 이 명령을 분석해 보겠습니다.

  • sudo apt install: 이 명령은 데비안 시스템에 패키지를 설치하는 데 사용됩니다.
  • software-properties-common: 이 패키지는 소프트웨어 및 소스 코드를 안전하게 관리하기 위한 특정 스크립트를 제공합니다.
  • apt-transport-https: 이 패키지는 apt 패키지 관리자가 'https' 프로토콜을 통해 패키지를 검색하는 데 필요합니다.
  • curl: 다양한 네트워크 프로토콜을 사용하여 데이터를 전송하기 위한 명령줄 도구입니다. 무엇보다도 파일을 다운로드하는 데 도움이 됩니다.
  • ca-certificates: 웹사이트의 보안을 확인하기 위해 필요한 패키지입니다. CA(인증 기관) 인증서 세트를 제공합니다.
  • -y: 이 옵션은 설치 중 모든 프롬프트에 자동으로 '예'라고 대답합니다.

Redis 설치 방법 선택

옵션 1: APT Debian 리포지토리를 사용하여 Redis 설치

데비안에는 기본 소프트웨어 제품에 Redis가 포함되어 있지만 버전이 최신이 아닐 수도 있습니다. 데비안은 안정성을 선호하며 일반적으로 보안이나 중요한 업데이트만 제공합니다. 이로 인해 Debian의 Redis 버전이 더 오래되었지만 틀림없이 더 안정적일 수 있습니다. Redis를 의도적으로 사용하기 위해 최신 기능이 필요하지 않은 경우 이는 완벽한 경로일 수 있습니다.

이 방법을 통해 Redis를 설치하려면 터미널에서 다음 명령을 실행해야 합니다.

sudo apt install redis

그만큼 sudo 명령은 수퍼유저 권한을 제공하는 반면 apt install redis Redis 소프트웨어 패키지를 Debian 시스템에 설치합니다.

옵션 2: Redis.io APT 리포지토리를 사용하여 Redis 설치

두 번째 방법은 최신 버전의 Redis가 필요하거나 원하는 사람들에게 더 매력적일 수 있습니다. 공식 Redis.io 저장소에서 APT 저장소를 가져오는 작업이 포함됩니다. 이 저장소는 정기적으로 버그 수정, 보안 패치 및 기능 업데이트를 받습니다.

Redis.io 저장소 가져오기

먼저 GPG 키를 가져옵니다. GPG(GNU Privacy Guard)는 안전한 통신 및 데이터 저장을 도와줍니다. GPG 키는 데이터 소스를 확인하고 다운로드 중에 누구도 데이터 소스를 변경하지 않았는지 확인합니다.

GPG 키를 가져오려면 다음 명령을 사용하십시오.

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

다음으로, 다음 명령을 사용하여 저장소를 가져옵니다.

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Redis.io APT 가져오기 후 패키지 색인 업데이트

새 저장소가 추가되면 시스템의 패키지 색인을 업데이트하여 새 소스에서 사용 가능한 패키지를 알아야 합니다. 다음 명령을 실행하여 이를 수행하십시오.

sudo apt-get update

APT 명령을 통해 Redis 설치

모든 설정이 완료되면 Redis.io 저장소에서 Redis를 설치할 수 있습니다. 이미 Debian 리포지토리에서 Redis를 설치했다면 대신 업그레이드가 표시될 수 있습니다. 다음 명령은 Redis 서버 및 도구와 함께 Redis를 설치합니다.

sudo apt install redis redis-server redis-tools

Redis 설치 확인

설치 후에는 항상 설치를 확인하는 것이 좋습니다. 당신은 이것을 할 수 있습니다 apt-cache policy 명령을 실행하여 Redis.io 버전이 설치되었는지 확인합니다. 사용 방법은 다음과 같습니다.

apt-cache policy redis

다음 명령을 사용하여 Redis 인스턴스를 활성화하고 시스템 부팅 중에 시작되도록 설정합니다.

sudo systemctl enable redis-server --now

Redis가 오류 없이 실행되고 있는지 확인하려면 다음 명령을 사용합니다.

systemctl status redis-server

이 명령은 다음에 대한 정보를 제공합니다. redis-server 이제 실행 중이어야 하는 서비스입니다.

Redis 검사: Debian에서 설치 후 확인

수신 포트

기본적으로 Redis는 포트 6379를 사용하여 localhost에서 수신 대기합니다. Redis가 실제로 예상대로 적극적으로 수신 대기하고 있는지 확인하려면 다음 명령을 사용하십시오.

ps -ef | grep redis

이 명령은 Redis와 관련된 실행 중인 프로세스를 표시하며, 이는 포트 6379에서 Redis의 수신 대기 상태를 반영해야 합니다.

Redis 서비스에 대한 Ping 테스트

핑 테스트는 Redis 서비스가 작동하는지 확인하는 가장 간단한 방법 중 하나입니다. 그러면 Redis 서비스에 대한 연결이 설정되어 해당 서비스가 실행 중이고 명령에 응답할 준비가 되었는지 확인합니다.

먼저 다음 명령을 사용하여 Redis 서비스에 연결합니다.

redis-cli

이 명령을 실행하면 터미널에 다음이 표시됩니다. 127.0.0.1:6379, 이는 로컬 호스트에서 Redis에 연결되었음을 나타냅니다. 이제 다음과 같이 Redis 서비스를 ping할 수 있습니다.

ping

Redis 인스턴스 종료

확인 확인을 완료하고 Redis가 올바르게 작동하는지 확인한 후 다음을 입력하여 Redis 인스턴스를 종료합니다.

exit

Debian APT 저장소 또는 공식 Redis.io APT 저장소를 사용하여 Debian 시스템에 Redis를 성공적으로 설치했습니다.

Redis 구성 및 설정

Redis는 다양한 요구 사항을 충족할 수 있는 유연성과 능력으로 인해 두각을 나타냅니다. 이 섹션에서는 캐싱 및 네트워크 액세스를 위해 Redis를 조정하고 보안 강화를 위해 비밀번호를 추가하는 방법을 안내합니다.

Redis 구성 파일에 액세스

Redis를 조정하는 여정은 다음 위치에 있는 Redis 구성 파일로 시작됩니다. /etc/redis/redis.conf. 다음과 같은 텍스트 편집기를 사용하여 이 파일을 열어야 합니다. nano.

다음 명령을 실행하여 수행하십시오.

sudo nano /etc/redis/redis.conf

캐싱을 위한 최대 메모리 지정

Redis의 사용 사례는 데이터를 캐싱하여 애플리케이션 성능을 향상시키는 것입니다. Redis에서 이 목적으로 특정 메모리 양을 지정하려면 구성 파일 뒤에 다음 줄을 추가합니다.

maxmemory 500mb 
maxmemory-policy allkeys-lru

이 시나리오에서는 Redis에 500MB의 메모리를 할당했습니다. 서버 사양과 애플리케이션 요구 사항에 따라 이 수량을 자유롭게 조정하세요.

할당된 메모리가 용량에 도달하면 Redis는 LRU(Least Recent Used) 정책에 따라 키를 제거합니다.

네트워크 액세스 설정

기본적으로 Redis는 localhost 인터페이스에서만 수신 대기합니다. Redis가 모든 인터페이스 또는 특정 IP 주소/서브넷에서 수신 대기하도록 이 설정을 변경할 수 있습니다.

먼저 구성 파일에서 69번째 줄을 찾으세요.

옵션 1: 모든 네트워크 인터페이스 청취

Redis가 모든 네트워크 인터페이스를 수신하도록 하려면 다음을 주석 처리하면 됩니다. bind 라인을 추가하여 # 처음에는:

# bind 127.0.0.1 ::1

옵션 2: 특정 IP 주소 또는 서브넷에 바인딩

Redis를 특정 IP 주소 또는 서브넷에 바인딩하려면 bind 선호하는 IP 또는 서브넷과 연결하세요.

bind 0.0.0.0/0

또는

bind 192.150.5.0/24

Redis를 IP 주소 또는 서브넷에 바인딩할 때 보안 강화를 위해 비밀번호를 적용하는 것이 좋습니다.

비밀번호 인증 시행

Redis 인스턴스에 추가 보호 계층을 추가하려면 인증용 비밀번호를 설정하면 됩니다.

다음으로 시작하는 줄을 검색하세요. # requirepass (약 507번째 줄) 주석 처리를 해제하고 강력한 비밀번호를 설정하세요.

requirepass YourStrongPasswordHere

바꾸다 YourStrongPasswordHere 대문자와 소문자, 숫자, 특수 기호를 혼합하여 견고한 비밀번호를 사용하세요.

변경 사항 커밋 및 Redis 다시 시작

구성 파일에 필요한 조정을 수행한 후 다음을 눌러 변경 사항을 저장합니다. Ctrl + O을 누른 다음 종료하세요. nano 눌러서 편집기 Ctrl + X.

마지막으로 Redis 서비스를 다시 시작하여 새 설정을 적용합니다.

sudo systemctl restart redis

이 명령은 시스템에 Redis 서비스를 중지하고 즉시 다시 시작하도록 요청하여 Redis가 사용자가 설정한 새 구성 매개변수에 따라 작동하는지 확인합니다.

Redis 서비스가 성공적으로 다시 시작되어 올바르게 실행되고 있는지 확인하려면 다음 명령을 실행하여 서비스 상태를 확인할 수 있습니다.

sudo systemctl status redis

이 명령은 상태(활성 또는 비활성), 가동 시간, 설치 확인 시 이전에 봤을 수 있는 로그 메시지를 포함하여 Redis 서비스에 대한 정보를 반환합니다.

UFW를 사용하여 Redis용 방화벽 구성

Redis 서버를 보호하려면 강력한 방화벽을 설정해야 합니다. Redis에는 기본적으로 방화벽이 포함되어 있지 않습니다. 또한 데비안은 iptables에 능숙하지 않은 한 즉시 사용 가능한 방화벽 솔루션을 제공하지 않습니다. 하지만 초보자라도 사용할 수 있는 간단한 방법이 있습니다. 이 방법에는 사용자 친화적인 방화벽 도구인 UFW(Uncomplicated Firewall)가 포함됩니다.

UFW 설치 확인

먼저 데비안 서버에 UFW가 있는지 확인하세요. 그렇지 않은 경우 다음 명령을 사용하여 설치하십시오.

sudo apt install ufw -y

이 명령에서는 sudo 루트 권한으로 명령을 실행하는 데 사용됩니다. apt install 패키지를 설치하는 명령입니다. ufw 설치할 패키지이고, -y 모든 프롬프트에 대해 자동으로 '예'라고 응답하여 추가 사용자 입력 없이 설치를 진행할 수 있는 옵션입니다.

UFW 활성화

UFW가 설치되면 시스템이 작동하고 보호되도록 활성화해야 합니다. 다음 명령으로 UFW를 활성화할 수 있습니다:

sudo ufw enable

이 명령은 UFW에게 귀하가 설정했거나 설정할 규칙을 활성화하고 적용하도록 지시합니다.

Redis용 UFW 규칙 구성

이제 UFW가 활성화되었으므로 Redis 서버를 보호하도록 구성할 수 있습니다. 특정 상황과 Redis 설치가 독립형 서버인지 아니면 클러스터의 일부인지에 따라 다른 방화벽 규칙을 설정해야 할 수도 있습니다.

추가 네트워크 IP 서버 인스턴스의 경우

UFW로 보호하려는 독립형 Redis 서버가 있는 경우 다음 명령을 사용하세요.

sudo ufw allow proto tcp from <ip address> to any port 6379

여기, 당신이 교체 <ip address> 연결을 허용하려는 서버의 IP 주소를 사용하세요. 이 명령은 UFW에게 해당 IP 주소에서 Redis의 기본 포트인 포트 6379의 모든 시스템으로의 TCP 연결을 허용하도록 지시합니다.

여러 인스턴스가 있는 클러스터 네트워크의 경우

Redis 서버 클러스터로 작업하는 경우 전체 서브넷의 연결을 허용할 수 있습니다. 이렇게 하려면 다음 명령을 사용하십시오.

sudo ufw allow proto tcp from <ip address>/24 to any port 6379

이 명령에서 교체 <ip address> 연결을 허용하려는 서브넷의 IP 주소로 바꿉니다. 이 명령은 Redis 서버를 모든 장치에 개방하므로 이 서브넷의 모든 장치에 대한 상당한 신뢰를 의미합니다. 따라서 내부 네트워크가 안전하다고 확신하는 경우에만 이 명령을 사용하십시오.

UFW 구성 확인

UFW 규칙을 구성한 후에는 의도한 대로 작동하는지 확인하는 것이 필수적입니다. 이 가이드의 시작 부분에서 Redis 서버가 작동하는지 확인하기 위해 ping을 실행한 것처럼 새 방화벽 규칙도 테스트할 수 있습니다. 다음을 사용하여 이 작업을 수행할 수 있습니다. redis-cli 명령:

redis-cli -h  <ip address> ping

이번에도 교체 <ip address> Redis 서버의 IP 주소로. 방화벽 규칙이 올바르게 설정되었고 Redis 서버가 정상적으로 작동하는 경우 이 명령의 출력은 간단해야 합니다. pong.

이 명령에서는 redis-cli Redis용 명령줄 인터페이스입니다. -h 호스트(서버의 IP 주소)를 지정합니다. ping Redis 서버와의 연결을 확인하는 명령입니다.

출력 해석

의 출력 redis-cli 명령은 방화벽 규칙이 예상대로 작동하는지 확인하는 데 도움이 됩니다.

pong

이 결과는 좋은 징조입니다. ㅏ pong 응답은 Redis 서버에 액세스할 수 있고 명령을 수락할 준비가 되었음을 나타냅니다. UFW에서 설정한 방화벽 규칙이 올바르게 작동하는지 확인하여 서버가 의도한 대로 통신할 수 있도록 합니다.

추가 Redis 구성 예

앞서 설명한 것처럼 Redis는 다양한 기능을 갖춘 유연한 인메모리 데이터 저장소입니다. 캐싱 및 메시징에 사용할 수 있습니다. 구성 파일을 변경하면 Redis가 원하는 대로 작동하도록 할 수 있습니다. 여기에서는 Redis에 대한 추가 구성 옵션을 보여줍니다.

키-값 만료 정책 설정

Redis에서 키에 대한 기본 TTL(Time-to-Live)을 설정하려면 구성 파일에서 maxmemory-policy 및 maxmemory-samples 설정을 변경합니다. 파일을 열려면 다음 명령을 사용하십시오.

sudo nano /etc/redis/redis.conf

다음을 찾으세요. maxmemory-policy 원하는 대로 설정하고 구성하세요. 예를 들어 LRU(Least Recent Used) 알고리즘에 따라 키를 만료하는 정책을 설정하려면 다음과 같이 구성을 업데이트하세요.

maxmemory-policy volatile-lru

다음으로 maxmemory-samples 환경. 이는 Redis가 퇴거 결정을 내리기 위해 검토해야 하는 샘플 수를 지정합니다.

maxmemory-samples 5

TCP Keepalive 활성화

TCP 연결 유지를 활성화하면 유휴 연결을 감지하고 닫는 데 도움이 되며 결과적으로 귀중한 시스템 리소스가 해제됩니다. 찾기 tcp-keepalive 에서 설정 /etc/redis/redis.conf 활성화하려면 다음 파일을 사용하세요.

tcp-keepalive 300

이 예에서는 연결 유지 간격을 300초로 설정합니다. 서버의 요구 사항 및 조건에 따라 이 수치를 조정해야 합니다.

느린 로그 모니터링 설정

느린 로그는 성능 문제를 정확히 찾아내는 데 유용한 메커니즘을 제공합니다. 지정된 기간을 초과하는 쿼리를 로깅하여 이를 수행합니다. 찾기 slowlog-log-slower-than 그리고 slowlog-max-len 의 설정 /etc/redis/redis.conf 느린 로그를 구성하는 파일:

slowlog-log-slower-than 10000
slowlog-max-len 128

위의 예에서는 느린 로그 임계값을 10,000마이크로초(10밀리초와 동일)로 설정합니다. 느린 로그는 128개의 최신 항목을 유지합니다. 특정 요구 사항 및 조건에 맞게 이러한 값을 조정해야 합니다.

Redis 이벤트 알림 활성화

Redis는 특정 이벤트에 대한 알림을 생성하여 모니터링 및 디버깅을 위한 강력한 도구를 제공할 수 있습니다. 이벤트 알림을 활성화하려면 notify-keyspace-events 에서 설정 /etc/redis/redis.conf 파일:

notify-keyspace-events ExA

여기에서는 만료되고 제거된 키에 대한 알림을 전달하도록 Redis를 구성합니다. 공식 Redis 문서는 이벤트 알림 및 사용 가능한 선택 사항에 대한 자세한 정보를 제공하는 포괄적인 리소스입니다.

Redis 로깅 수준 조정

Redis 문제를 더 잘 해결하고 모니터링하려면 로깅 수준을 변경하세요. /etc/redis/redis.conf 파일에서 loglevel 설정을 조정하여 이 작업을 수행할 수 있습니다.

loglevel notice

기본 로깅 수준을 '알림'으로 설정했습니다. 다른 옵션으로는 'debug', 'verbose', 'notice' 및 'warning'이 있습니다. 귀하의 필요에 가장 적합한 수준을 선택하십시오.

sudo systemctl restart redis-server

이 명령은 Redis를 다시 시작하고 변경 사항이 활성화됩니다.

마무리 생각

Debian 12, 11 또는 10 서버에 Redis를 설치하고 구성하는 방법을 다루었습니다. 여기에는 초기 설치, 보안을 위한 방화벽 구성 및 기타 사용자 정의 옵션이 포함됩니다. Redis에는 다양한 구성 옵션이 있어 필요에 맞게 성능과 동작을 조정할 수 있습니다.

Joshua James

코멘트를 남겨주세요