[Redis] 캐시 서버와 명령어
Redis는 다른 데이터베이스들과 마찬가지로 데이터를 저장하고 쿼리를 통해 데이터를 가져올 수 있는 데이터베이스지만, Redis의 몇 가지 특징 덕분에 다른 데이터베이스들보다 속도가 빠르다.
기본적으로 많은 DBMS는 데이터를 HDD나 SSD에 저장해 데이터의 영속성을 보장한다.
반면 Redis는 데이터를 RAM에 저장해 HDD나 SSD에 데이터를 저장할 때 보다 읽기 및 쓰기 작업을 훨씬 빠르게 수행할 수 있다.
이 외에도 다른 DBMS와는 다르게 Redis는 스키마 대신 key-value 쌍으로 데이터를 저장하고 각 key에 대해 여러 자료구조를 선택해서 사용할 수 있는 등 여러 차별화된 특징을 가지고, 이 특징 덕분에 높은 성능을 보장한다.
Redis에서는 문자열인 키를 사용해서 값을 참조하고, 참조되는 값은 다양한 데이터 구조로 저장될 수 있다.
모든 데이터 접근은 키를 통해 이루어지고 값의 데이터 구조마다 다른 명령어를 사용한다.
https://redis.io/docs/latest/commands/
공식문서에서 다양한 명령어를 확인할 수 있으니.. 자세한 사용법은 공식문서를 참고하자.
지금은 Redis를 캐싱 서버, 세션 저장, 메세지 브로커 등 여러 방식으로 사용하지만, 원래는 캐싱 서버로 사용될 목적으로 개발됐다.
데이터를 저장할 때 사용하는 SET 명령어에서도 아무 옵션도 설정하지 않으면 애플리케이션이 꺼질 때 까지 데이터를 메모리에 저장하지만, EX 옵션을 추가하면 데이터가 만료될 시간을 지정할 수 있다.
이 외에도 SETEX, SETNX, MSET 등 여러 축약형 명령어와 SETARRANGE GETARRANGE 같이 특정 문자열의 인덱스를 지정해서 조작할 수 있는 명령어를 제공한다.
이런식으로 자주 사용되는 데이터들을 인코딩해서 사용하는 경우 레디스의 메모리를 좀 더 효율적으로 사용할 수 있다.
이 경우 SETRANGE / GETRANGE 명령어를 사용하자.
숫자를 다룰 때는 내부적으로 최적화를 진행해 메모리에 int 타입으로 저장하고, int 타입으로 커버할 수 없는 숫자는 문자열 형태로 저장한다.
INCR DESC INCRBY 등 숫자를 다루는 명령어들은 내부에서 원자적으로 처리돼 여러 클라이언트의 동시 요청에도 순차적 처리를 보장하니 참고하자.
SSR을 지원하는 프레임워크에서도 Redis를 도입해 성능을 향상시킬 수 있다.
사용자에게 제공하는 화면 중 모든 사용자가 같은 화면을 보게 되는 정적 페이지의 경우 사용자별로 캐싱하지 않아도 돼 저장하는 용량도 줄일 수 있어 캐시로 저장하기에 적합하고, 커스텀 페이지 header / footer 등 공통 컴포넌트만 캐싱하는 것 처럼 캐싱 전략을 세밀하게 조정해서 사용한다.
Redis의 이점 중 가장 중요한 요소는 캐시를 통한 서버 IO 줄이기이니.. 이 부분에 집중하자.
'Database > Redis' 카테고리의 다른 글
[Redis] Stream (0) | 2024.10.10 |
---|---|
[Redis] Module - RediSearch (0) | 2024.10.06 |
[Redis] 동시성 제어 (4) | 2024.05.25 |
[Redis] 파이프라인과 자료구조 (0) | 2024.05.15 |
댓글
이 글 공유하기
다른 글
-
[Redis] Stream
[Redis] Stream
2024.10.10 -
[Redis] Module - RediSearch
[Redis] Module - RediSearch
2024.10.06 -
[Redis] 동시성 제어
[Redis] 동시성 제어
2024.05.25 -
[Redis] 파이프라인과 자료구조
[Redis] 파이프라인과 자료구조
2024.05.15