Open sypark9646 opened 3 years ago
@AMYMEME
DB에 스냅샷 저장한다는 이슈인거죠??
네 맞습니다!!
근데 서버(webflux)단에서 처리할 수 있으면(댓글 등록 시에 DB에 저장하고 redis에 저장할때 ttl을 주면) 필요없을 것 같기도 할 것 같은데.. 어떠신가요?
- 등록 DB에 저장 -> id 받아서 redis에 캐싱
- 읽기 읽기 전 redis를 확인 -> 없으면 DB에서 읽어서 redis에 캐싱
좋습니다! 레디스를 Write Back 방식으로 사용할까 했었는데 Look aside Cache 로 사용해도 충분할 것 같네요
근데 그러면 웹플럭스에서 rabbitMQ로 보내면golang 쪽에서 Mongo에 저장과 동시에 redis 에 저장해야할 것 같은데 다른 방법이 있을까요?
생각해보니 저희 테스트하고자 하는 환경이 읽기연산이 많을 때인가요 아니면 쓰기연산이 많을 때일까요?? 쓰기 연산이 많은 경우에는 Write Back 방식으로, 읽기 연산이 많은 경우에는 Look aside Cache로 설계해야할 것 같아요
실시간으로 댓글을 가져오니까 읽기 연산이 더 많은 환경인 것 같아요!
근데 그러면 웹플럭스에서 rabbitMQ로 보내면 golang 쪽에서 Mongo에 저장과 동시에 redis 에 저장해야할 것 같은데 다른 방법이 있을까요?
앗 저희 디비는 mysql -> Mongo 로 바꾸는거죠?? rabbitMQ => Mongo & redis 에 동시에 저장하는게 이상해 보이긴 하네요..
음 갑자기 생각 정리가 안돼서,, 저희 하려고 하는게 아래 플로우가 맞는지 한 번만 확인부탁드려요!
네네 맞습니다! Db 에 넣은 직후 캐싱하는게 좀 어색하려나요??
아 rabbitMQ => Mongo & redis 에 동시에 저장하되, redis 용량 때문에 만료시간은 두는거 맞죠?? 그럼 괜찮을 것 같아요! 혹시 만료 시간은 몇초로 두면 좋을까요??
정리하자면 보라색이 webflux쪽에서 하는일, 초록색이 golang쪽에서 하는 일인 것 같은데 저도 얼른 webflux를 익혀봐야겠네요!!
넹 맞습니다!
그래서 mongoDB 설계를 해야할 것 같아 이슈 띄우고 곧 올리겠습니다
마침 이런 글이 있네요! 캐싱되지 않은 데이터를 동시에 많은 사용자가 요청할 경우에는 어떻게 되는지 궁금했는데 저희 프로젝트에 적용할 수 있을지는 더 생각해 보아야겠지만 읽어보면 좋을 것 같아요~
DB에 스냅샷 저장한다는 이슈인거죠??
근데 서버(webflux)단에서 처리할 수 있으면(댓글 등록 시에 DB에 저장하고 redis에 저장할때 ttl을 주면) 필요없을 것 같기도 할 것 같은데.. 어떠신가요?
등록 DB에 저장 -> id 받아서 redis에 캐싱
읽기 읽기 전 redis를 확인 -> 없으면 DB에서 읽어서 redis에 캐싱
그치만 만약의 경우를 위해 스냅샷을 하는 건 좋은 것 같습니다 :)