[Redis] 캐시 삭제

rara_kim·2022년 9월 15일
0

Spring

목록 보기
14/20
post-thumbnail

캐시 삭제

캐시를 삭제해 주어야 하는 이유에는 여러가지가 있다.

캐시에 데이터가 계속 있게 되는 경우, 해당 key를 가지는 데이터가 업데이트 되었는데 캐시에 데이터가 남아있게 된다면 클라이언트의 요청과는 다르게 캐시에 있는 데이터를 내려주게 된다.
따라서 데이터가 업데이트가 되면 해당 캐시의 데이터를 비워주거나 캐시 데이터를 같이 업데이트 해주어야 한다.

또한, 캐시도 공간에 한계가 있기 때문에 무한정 데이터를 저장할 수 있는 것이 아니다.
오래 저장되어있던 데이터나 더이상 필요없는 데이터는 지워주어야 한다.

Scheduler에서 캐시 삭제

스케줄러의 상단에 CacheEvic어노테이션을 사용해준다.

@Scheduled(cron = "${0 0 5 * * *}")
@CacheEvict(value = "test", allEntries = true)
public void TestScheduling() {
	......
}
  • value는 Redis서버의 prefix처럼 사용되는 부분이다.
    앞서 캐시설정을 해줄 때 사용한 value를 사용해준다.
  • allEntries = true는 Redis 서버에 있는 value에 해당하는 데이터는 모두 지운다는 뜻이다.
    특정 키에 해당하는 데이터를 지워주고 싶을 때는 값을 넣어주면 된다.

위와같이 설정해주면 스케줄러가 실행될 때 같이 캐시에 있는 데이터도 비워진다.

profile
느리더라도 꾸준하게

0개의 댓글