이번에는 또또또또ㄸ레디스에 관련해서 발견한 발생한 문제(?) 가 있어서 적어보는 글....
지난번에 레디스에서 ...
@EnableRedisRepositories(enableKeyspaceEvents = EnableKeyspaceEvents.ON_STARTUP, shadowCopy = ShadowCopy.OFF)
위의 이빈트 수신기를 사용해서 레디스에서 @Indexed 를 사용한 비회원 정보 생성시에 같이 생성되는 참조값들도 같이 날려주게끔 해놓고 테스트도 다 해서 성공적인 결과를 얻을 수 있었다.
그런데, 추후 확인해본 결과 값이 삭제가 되지 않는 일부 코드들을 발견할 수 있었다...
만료시간을 짧게 했을 때에는 잘 작동했기에 혹시 많은 데이터가 생성되고 이로인해 뭔가 내가 잘못 짠 것이 있어서 꼬이는 바람에 만료시간이 길어짐으로 인해 값들이 쌓이면서 문제가 생겼나 싶어 확인해 보았지만 이는 문제가 아니었다...
그래서 이번에는 캐시 관련해서 뭔가 서로 문제가 생기나 싶어서 캐시 관련해서도 만료시간을 건드리고 해 보았지만 이 또한 문제가 아니었다...
이쯤되니 도저히 모르겠어서 조원분들한테 상황을 말씀드리고 어떻게 생각하는지 여쭤 보았더니...
"우리가 테스트하느라고 서버가 내려갔을 때, 레디스에서 삭제가 진행되고 그 때 문제가 생기는것 아닐까요?"
으음...????
..
.
?????
듣고 보니 이벤트 수신을 위한 설정은 서버에 존재하는거지 레디스 자체 설정이 아니라는것을 문득 떠올렷다...
그래서 말씀해주신대로 만료시간을 테스트를 위해 짧게 설정하고 새로운 비회원 정보를 다수 생성하고 서버를 내리고 레디스를 통해서 확인해보니...
정말로 참조값이 삭제가 안되는것을 볼 수 있었다...
아니 코드를 짠 것은 나인데...
진짜 오래 고민한 거였는데...
역시
혼자서 고민해서 도저히 답이 않나온다 싶으면 차라리 다른사람의 의견을 들어보는것도 정말 좋은 방법인 것 같다...
덕분에 레디스는 이제 정말로 끝이고 다른 코드를 짤 수 있는 시간을 확보할(?) 수 있었다.
이후에는 지나번에 사용했던 코드들과 비슷하게 짜서 실시간으로 게임에서 결과물을 제출하는 상황을 실시간으로 유저들에게 보여주는 기능을 만들고 하루를 마무리했다.
'일기' 카테고리의 다른 글
2023-01-28 (0) | 2023.01.28 |
---|---|
2023-01-27 (0) | 2023.01.27 |
2023-01-25 (0) | 2023.01.25 |
2023-01-24 (0) | 2023.01.24 |
2023-01-23 (0) | 2023.01.23 |