TIL: Redis의 다양한 사용 사례
Redis는 고성능, 인메모리 키-값 데이터베이스로, 그 용도가 단순한 캐싱을 넘어서 매우 다양하다!
- 캐싱: 데이터베이스 쿼리 결과나 계산에 비용이 많이 드는 작업의 결과를 저장하여 빠른 응답 속도를 제공
- 세션 관리: 사용자의 로그인 상태와 같은 웹 세션 정보를 빠르게 읽고 쓸 수 있어 세션 관리에 이상적임
- 메시징 및 큐 시스템: Redis의 리스트, 발행/구독 모델을 활용하여 간단한 메시지 브로커나 작업 대기열 구현이 가능함!
- 실시간 애플리케이션: 채팅 애플리케이션 또는 실시간 분석 등 실시간 데이터 처리가 필요한 애플리케이션에 적합하당
- 리더보드와 카운팅: 게임의 리더보드 구현이나 사이트 방문자 수 카운팅 등에 사용된다.
- 분산된 잠금: 여러 인스턴스가 동일한 자원에 접근하는 것을 조정하기 위해 사용될 수 있
- 지리 공간 데이터 처리: 위치 기반 서비스에서의 지리 공간 쿼리 실행을 위해 사용됨
- Redis는 이러한 다양한 사용 사례를 지원하기 위해 다양한 데이터 구조(리스트, 세트, 해시, 정렬된 세트 등)를 제공한다. 단순한 캐싱 도구를 넘어서 애플리케이션의 성능과 기능을 향상시키는 데 있어 중요한 역할을 할 수 있는 강력한 도구라고 함!!!
1. Redis 설치하기
Redis는 Linux, macOS, Windows 등 다양한 운영 체제에서 실행할 수 있습니다. Redis의 공식 웹사이트(redis.io)에서는 다양한 설치 방법을 제공합니다.
Linux에서 설치하기:
대부분의 Linux 배포판은 패키지 매니저를 통해 Redis를 쉽게 설치할 수 있습니다.
예를 들어, Ubuntu에서는 다음 명령어를 사용합니다:
sudo apt update
sudo apt install redis-server
macOS에서 설치하기:
Homebrew를 사용하는 경우, 다음 명령어로 설치할 수 있습니다:
brew install redis
Windows에서 설치하기:
Windows에서는 공식적으로 지원되는 버전이 없지만, Microsoft의 WSL(Windows Subsystem for Linux)을 사용하거나, Redis의 Windows 호환 버전을 사용할 수 있습니다.
2. Redis 서버 실행하기
Redis 서버를 설치한 후, 다음 명령어를 통해 Redis 서버를 시작할 수 있습니다:
#서버 실행 1. launchd를 이용하여 백그라운드에서 실행
brew services start redis
#서버 실행 2. 포그라운드에서 직접 실행
redis-server
launchd를 사용하여 Redis를 백그라운드에서 실행하는 것이 일반적으로 더 좋은 접근 방식인데, 여러 이유가 있다.
백그라운드에서 Redis 실행의 장점:
- 시스템 부팅 시 자동 시작: launchd를 사용하면 Redis 서비스가 시스템 부팅 시 자동으로 시작되도록 구성할 수 있다. 이는 서버 운영 시 매우 편리한 기능이다.
- 프로세스 관리: launchd는 프로세스를 모니터링하고, 필요한 경우 자동으로 재시작할 수 있다. 이는 Redis 인스턴스의 안정성을 향상시키는데 도움이 됨.
- 백그라운드 실행: Redis를 백그라운드에서 실행하면 터미널 세션에 종속되지 않으므로 터미널을 닫거나 로그아웃해도 Redis 프로세스가 계속 실행된다.
- 보안 및 권한 관리: launchd를 통해 Redis를 실행할 때, 특정 사용자 권한으로 실행하도록 구성할 수 있다. 이는 보안을 강화하는 데 도움이 된다.
포그라운드에서 Redis 실행의 경우:
포그라운드에서 Redis를 실행하는 것은 개발 환경에서 디버깅이나 테스팅 목적으로 유용하다. 이 방법은 로그 출력을 실시간으로 확인하기 용이하며, Ctrl+C를 사용해 쉽게 중단할 수 있다는 장점이 있다. 하지만, 프로덕션 환경에서는 서버가 재부팅되거나 터미널 세션이 종료될 때 자동으로 Redis가 중단되는 등의 문제로 인해 바람직하지 않다...
결론:
- 프로덕션 환경: launchd를 사용하여 백그라운드에서 Redis를 실행하는 것이 좋다. 이는 Redis 서비스의 안정성, 자동 시작, 보안 등을 보장한다.
- 개발 환경: 필요에 따라 포그라운드에서 실행하는 것이 유용할 수 있으며, 특히 디버깅이나 빠른 테스트를 수행할 때 좋다.
백그라운드 실행을 위해 launchd를 사용할 때는, 적절한 plist 파일을 생성하고 관리해야 한다. 이 파일은 Redis 서비스의 구성을 정의하며, /Library/LaunchDaemons 또는 ~/Library/LaunchAgents 디렉토리에 위치해야 한다.
3. Redis CLI 사용하기
Redis CLI(Command Line Interface)는 Redis와 상호작용하는 가장 기본적인 방법입니다. 새 터미널 창을 열고 다음 명령어로 CLI를 시작합니다:
# 레디스 클라이언트 접속
redis-cli
4. 기본적인 Redis 명령어
Redis에서 데이터를 저장하고 검색하는 기본적인 명령어는 다음과 같습니다:
SET key value: 키에 값을 저장합니다.
예: SET greeting "Hello, Redis!"
GET key: 키에 저장된 값을 검색합니다.
예: GET greeting
DEL key: 키와 그 값을 삭제합니다.
예: DEL greeting
LPUSH key value: 리스트의 왼쪽에 값을 추가합니다.
예: LPUSH mylist "Hello"
RPUSH key value: 리스트의 오른쪽에 값을 추가합니다.
예: RPUSH mylist "Redis"
LRANGE key start stop: 리스트에서 범위에 해당하는 요소를 검색합니다.
예: LRANGE mylist 0 -1
세션 정보 저장하기
SET session:user123 "logged_in"
세션 만료시키기
#이 명령은 session:user123 키를 3600초(1시간) 후에 만료시킨다.
EXPIRE session:user123 3600
'TIL' 카테고리의 다른 글
캐시에 대해서 (0) | 2024.03.06 |
---|---|
TypeScript에 대하여 (0) | 2024.03.05 |
의존성 주입에 대하여 (0) | 2024.02.27 |
JavaScript의 변수 선언과 구조 분해 할당(destructuring assignment) (0) | 2024.02.21 |
액세스 토큰과 리프레시 토큰으로 자동 로그인 구현하기 (0) | 2024.02.21 |