Redis : In-memory DB
RDS DB는 영속성을 제공하는데 목적을 두고있다. 이는 데이터가 사라지지 않게 하기 위해 파일시스템(SSD, HDD 등)에 저장한다는 의미이다. 컴퓨터가 저장되어도 데이터가 사라지지 않지만 기본적으로 데이터를 읽고 쓰는데 오래걸린다.
하지만 Redsi는 메모리, 즉 RAM에 데이터를 저장하기 때문에 복작한 입출력 과정이 필요하지 않다. RDS보다 빠르지만 언제든 사라질 수 있는 데이터를 다룬다. 특정 게시글의 조회수와 같이 빠르게 업데이트 되는 데이터, 또는 사용자 세션, 장바구니와 같은 시간이 지나면 삭제되는 데이터 등을 저장하기 위해 가장 많이 사용되어온 DB이다.
Redis는 NoSQL DB이다.
일반적인 RDS DB는 SQL을 사용한다.
SELECT * FROM users;
Redis를 비롯한 NoSQL DB는 (일반적으로) SQL을 사용하지 않는다.
SET greeting "Hello, Redis!"
GET greeting
NoSQL은 현재는 Not only SQL을 의미한다.
기술이 발전함에 따라 데이터가 증가하고, 비정형데이터가 많아지고, 확장성과 유연성이 떨어져서 NoSQL이 생겨난것이다.
NoSQL DB의 종류 몇가지
- Key-Value: 가장 단순한 형태의 데이터베이스로, Key에 Value를 저장하는 형태입니다. JSON, Python의 Dictionary, Java의 Map의 형태로 데이터를 관리한다고 생각할 수 있습니다.
- Document: 객체를 표현하는 Document라는 단위로 데이터를 저장하는 형태입니다. Key - Value에서 발전했다고 볼 수 있으며, JSON, XML 등 복잡한 데이터를 저장하고 관리합니다.
- Column-Family: 각 Row의 Column이 고정되어있지 않고, 필요한 데이터 Column을 이름, 데이터, Timestamp와 함께 저장하는 형태의 데이터베이스 입니다.
'TIL' 카테고리의 다른 글
DB인덱싱 (0) | 2025.03.06 |
---|---|
Cache (0) | 2025.03.05 |
Spring Security의 @AuthenticationPrincipal 이해하기 (0) | 2025.02.25 |
restdocs (0) | 2025.02.20 |
n+1을 해결하는 여러가지 방식의 장단점 (0) | 2025.02.19 |