IT/정보

Redis 잘못 쓰면 성능 폭망?! 데이터 구조로 날개 달기!

Simple H 2025. 1. 4. 09:52

안녕하세요! 여러분과 함께 다양한 경제와 개발 이야기를 나누는 심플이의 오피니언입니다.

세상 속 트렌드와 그 이면에 숨은 이야기를 함께 들여다보아요.


오늘은 Redis 캐시에 대해 이야기해보려 합니다. Redis는 기본적으로 데이터 구조에 기반을 두어 데이터 세트를 문자열, 해시, 정렬된 집합, 집합, 목록, 스트림 등으로 저장할 수 있습니다. 이 덕분에 다양한 유형의 프로젝트와 데이터 요구 사항에 부합합니다. 본인이 참여한 프로젝트는 Redis를 활용하여 간편한 Pub-Sub 시스템을 구축하였고, 이를 통해 대량의 데이터를 효율적으로 처리하게 되었습니다. 이러한 방식은 특히 콘서트 예약 시스템 내에서 여러 세그먼트의 이행을 처리하는 데 사용되었습니다.

 

이 과정에서 가장 주목할 만한 점은 Redis가 초기에는 문자열만 지원한다고 많은 개발자가 오해하고 있다는 것입니다. 그러나 여러분이 Redis의 문서를 살펴보시면 알겠지만, 그렇지 않습니다. Redis는 여러 데이터 구조를 지원하며, 이를 통해 다양한 기능을 구현할 수 있습니다.

 

여기서 떠오를 수 있는 질문 중 하나는 'Redis의 데이터 구조를 활용해 데이터를 어떻게 효율적으로 관리할 것인가?'입니다. 이러한 고민 속에서, 저는 Micronaut Lettuce 클라이언트를 통해 Redis에 데이터를 적재하는 방법을 연구했습니다. 이 과정에서 ByteBuffer를 활용해 데이터를 인코딩하고 디코딩하면서, 단순히 문자열 대신 객체 형태로 데이터를 저장할 수 있었고, 이를 통해 시스템의 성능을 향상시켰습니다.


 

또한, 코덱이 Redis에서 작동하는 방식은 매우 간단합니다. 모든 것은 ByteBuffer에 저장되며, 데이터를 저장할 때와 읽어올 때 각각의 인코딩 및 디코딩 메서드가 호출됩니다. 이를 통해 다양한 데이터를 Redis에 적재하고 관리할 수 있습니다.

 

 

프로젝트에서 느낀 것은, 기술 발전에 따라 다양한 해결책이 가능하다는 것입니다. 예전에는 lombok @ToString을 사용해 문자열로만 데이터를 저장했지만, 최근에는 다양한 방법으로 데이터를 효율적으로 저장할 수 있습니다.

 


변화가 빠른 경제 흐름 속에서도 꾸준히 정보를 습득하고 고민하는 여러분의 노력이야말로 진정한 경쟁력입니다.

앞으로도 유익한 내용을 계속 전해 드리겠습니다.

함께 성장해 나가며 다음 포스팅도 기대해 주세요!!