0. 이 글을 작성하는 이유
Redis가 어디에 좋고 왜 사용하는지 알아보면서 정리하기 위해
1. Redis란?
Redis는 비관계형 데이터베이스 관리 시스템 NoSQL DBMS입니다.
Key와 Value로 데이터를 구성하여 별도의 SQL없이 Key로 데이터를 조회할 수 있습니다.
어 어? 동작 그만. 마! Key와 Value는 Java에서도 Map지원하는데 이걸 왜 쓰는데
조회 속도가 빠릅니다.
내가 빙다리.. 아니 컴공과 1학년으로 보이냐 임마. Java의 Map도 Hashing을 사용해서 조회 속도가 빠른데 어?!
성격이 좀 급하십니다. 실은 그게 핵심은 아닙니다.
Redis는 RAM에 데이터를 저장합니다.
RDBMS는 데이터를 어디에 저장하죠? 보조 기억장치(HDD, SSD)에 저장하죠. (물론 필요에 의해 캐싱을 하면서 RAM에 올리는 경우도 있습니다.)
언제 써야 하는지에 초점을 두세요 제발!!
아니 언제 써야 하는지 안 알려줬잖아.
무튼 Redis의 주 사용 목적은 여러 서버에서 같은 데이터를 공유해야 하는 상황에 사용합니다.
Redis는 내부 자료구조가 Atomic하게 처리가 되어있어 Race condition도 잘 예방해 줍니다.
아니 그건 Spring으로 서버 하나 올려서 Map에다가 데이터 때려 박고 어찌어찌하면 잘 돌아가는 거 왜 어렵게 Redis를 또 공부해야 하나.
아이고.. 사장님.. 그거 하나하나 다 Controller부터 Repository까지 다 만들고 데이터 정의하고 언제 다합니까.. 지금 하시는 말씀은 RDBMS(MariaDB)도 그냥 다 스프링 서버 하나로 해결하자는 거랑 같아요..
말 그대로 DBMS입니다. 중간에 DB서버 하나 만들고 거기에 Redis하나 올려두면 여러 서버에서 다 접근하면서 데이터 가져가고 할 수 있는데 왜 그렇게 합니까.
물론 단일 서버에서도 중간에 데이터 캐시가 필요한 경우 사용해도 좋습니다.
캐시 그거 MySQL도 다 된다 임마.
사장님 MySQL 버전이..? 쿼리 캐시가 5.7부터는 지원을 중단했고 8.0부터는 삭제했는데요..?
https://dev.mysql.com/blog-archive/mysql-8-0-retiring-support-for-the-query-cache/
암튼 마 다 했어.
예 예.. 아무튼 Redis홍보… 아니 이론과 예제에 대해 자세하고 다양하게 다음 시간에 더 알려드리겠습니다.
'AMQP > Redis' 카테고리의 다른 글
Kotlin에서 Redis의 expire설정에 관하여 (4) | 2024.01.07 |
---|---|
그래서 Redis는 왜 사용해야하고 뭐가 좋은가?(2) - 캐시로 사용하기 (0) | 2023.09.11 |
Redis-stack + kotlin + spring boot = 좋은 블로그 글감 (0) | 2023.08.31 |