개발

친구 정보, Redis에서 MySQL로 옮긴 이유

kdozlo 2025. 1. 10. 16:18

친구 정보, Redis에서 MySQL로 옮긴 이유

상황

현재 사용자의 친구 정보들을 "카카오톡 친구 API"를 통해 받은 뒤, redis에 저장해 놓고 있었다.

하지만 "자신의 친구들 중 친한 친구를 표시할 수 있다."라는 기능을 제공하고 있고, 이 정보 또한 redis에 함께 저장하고 있다.

현재 DB 구조

문제점

1. 인메모리 구조인 redis에서 정보가 사라질 경우, 친구 목록은 "카카오톡 친구 API"를 통해 다시 받으면 되지만, 친한 친구 정보는 복구할 수 있는 방법이 쉽지 않다. 또한 우리 서비스에서 제공하는 기능에 대한 정보를 인메모리 구조인 레디스에서 관리하는 것이 자연스럽지 않다고 판단했다.

 

2. 친구들의 펀딩 게시글 조회 기능을 구현 할 때 redis를 통해 친구 목록을 받은 후, 이 정보를 바탕으로 mySQL에 있는 펀딩 게시글 목록을 조회 해야한다. 또한 친한 친구의 펀딩 게시글을 먼저 보여줄 수 있게 우선순위를 부여하고 싶은데 로직이 복잡해진다. 

 

해결 방법

친구 정보를 redis에 저장하지 말고, mySQL로 옮기기로 했다.

이렇게 했을 때 문제점1을 해결 할 수 있다.

뿐만 아니라 join을 이용해서 문제점2도 해결된다.

변경 DB 구조