본문 바로가기

backend

Remote Dictionary Server(Redis)

Redis

Redis는 In-Memory 기반 NoSQL Key-Value 데이터 저장소입니다. In-Memory는 메모리에 데이터를 저장한다는 뜻입니다. 주로 캐시 서버로 많이 이용됩니다.

Redis의 장점

데이터 처리 속도

Redis는 데이터를 메모리에 저장하기 때문에 데이터 처리 속도가 빠릅니다. 하지만 메모리는 전원이 꺼지면 데이터가 전부 사라지기 때문에 데이터가 유실될 수 있습니다.

DataType

다양한 DataType

Redis는 다양한 데이터 타입을 지원합니다. 그래서 다양한 요구사항에 맞출 수 있습니다.

캐싱

많은 사람들이 사용하는 MySQL DB의 경우 데이터를 디스크에 저장합니다. 이때 사용자가 많아져 요청이 몰리게 되면 부하가 와 데이터 처리 속도가 저하될 수 있습니다. 그래서 Redis는 자주 쓰이는 데이터에 캐시를 적용해 빠른 처리 속도를 보장합니다. TTL(Time-To-Live)설정으로 오래된 데이터를 관리할 수 있습니다. 

데이터 영속성

메모리는 휘발성 때문에 캐싱이 어려운 것 아닌가 하는 생각이 들 수도 있습니다. 이때 옵션으로 RDB(Redis Database Backup), AOF(Append Only File) 등을 이용하여 데이터의 영속성을 보장할 수 있습니다. 

 

데이터의 복구가 중요한 경우 위 두 옵션을 사용하여 데이터를 디스크에 저장하고, 다시 불러올 수 있습니다. 하지만 단순한 캐시의 경우에는 데이터베이스에서 다시 가져오면 되므로 굳이 필요하지는 않습니다. 

Single Thread

Redis는 명령어를 실행하는 스레드가 하나입니다. 그래서 Race Condition이 발생하지 않습니다.

Atomic

Redis는 모든 작업이 원자적으로 실행됩니다. 

'backend' 카테고리의 다른 글

인덱스 알아보기  (0) 2025.01.17
Stream을 사용하여 API 개발하기  (0) 2024.12.23
DB Lock  (0) 2024.11.25
프록시 조금 쉽게 알아보기 - 1 (프록시 패턴)  (0) 2024.10.23
JDBC, DriverManager, Connection Pool, DataSource  (0) 2024.07.30