Redis 와 캐싱 · TTL 과 만료 정책 · 퀴즈
퀴즈: TTL 과 만료
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`SET key newval` 로 값만 갱신하면 기존 TTL 은?
- 유지된다
- 절반으로 줄어든다
- 제거되어 키가 영구가 된다
- 초기화된다
`TTL key` 의 반환값 -2 는 무슨 뜻인가?
- 키는 있지만 만료가 걸려 있지 않음
- 1초 안에 만료될 예정임
- 키가 존재하지 않음
- 명령을 처리하다 오류가 남
만료 시각이 지난 키가 `DBSIZE` 에 남아 있을 수 있는 이유는?
- Redis 의 만료 처리 버그
- 복제본에서 삭제가 늦게 반영되는 지연
- 지연 삭제와 표본 기반 능동 만료를 쓰기 때문에 아무도 접근 안 한 키는 한동안 남는다
- TTL 이 근사값이라 몇 초씩 오차가 나서
순수 캐시 용도의 Redis 에 권장되는 축출 정책은?
- noeviction
- volatile-ttl
- volatile-random
- allkeys-lfu
`volatile-lru` 정책에서 캐시 키에 TTL 을 빠뜨리면?
- 그 키는 축출 대상에서 제외되어 영원히 메모리를 차지한다
- 자동으로 TTL 이 붙는다
- 쓰기가 실패한다
- 정책이 allkeys 로 바뀐다
TTL 에 지터를 넣는 목적은?
- 만료 시각을 예측하기 어렵게 만들려고
- 동시에 채워진 캐시가 동시에 만료되어 스탬피드를 만드는 것을 막으려고
- 평균 수명을 줄여 메모리를 아끼려고
- 만료 시점을 더 정확히 맞추려고