복붙노트

[REDIS] 어떻게 레디 스 키를 만료됩니까?

REDIS

어떻게 레디 스 키를 만료됩니까?

어떻게 레디 스 키의 만료를 구현 하는가? 여기에서 나는 레디 스 키가 만료되는 시간을 저장하는 것을 배웠지 만 정확히 어떻게이 구현?

해결법

  1. ==============================

    1.즉 - 각 레디 스 객체에 대해, 만료 시간이 있습니다. 당신이 만료 객체를 설정하지 않는 한, 그 시간은 "결코"입니다.

    즉 - 각 레디 스 객체에 대해, 만료 시간이 있습니다. 당신이 만료 객체를 설정하지 않는 한, 그 시간은 "결코"입니다.

    이제, 유효일 메커니즘 자체가 반 게으른입니다. 그들이 읽을 때까지 당신이 실제로 개체를 만료하지 않는 게으른 만료을 의미합니다. 객체를 읽을 때, 우리는 만료 타임 스탬프를 확인하고, 과거에 있다면, 우리는 아무것도 돌려주지 않는, 우리는 그것에있어 개체를 삭제합니다. 그러나 문제는 키를 터치하지 않은 경우, 그냥 아무 이유없이 메모리를 차지한다는 것입니다.

    그래서 레디 스 랜덤 활성 만료 제 2 층을 추가한다. 그냥 무작위 키를 모든 시간을 읽고, 만료 된 키를 터치 할 때 그것은 게으른 메커니즘을 기반으로 삭제됩니다. 이것은 행동을 만료에 영향을주지 않습니다, 그냥 만료 된 키의 "가비지 컬렉션"을 추가합니다.

    물론 실제 구현은보기보다 복잡하지만,이 메인 아이디어이다.

    당신은 여기에 대한 자세한 내용을보실 수 있습니다 : http://redis.io/commands/expire

    그리고 활성 만료주기에 대한 소스 코드는 여기에서 찾을 수 있습니다 : https://github.com/antirez/redis/blob/a92921da135e38eedd89138e15fe9fd1ffdd9b48/src/expire.c#L98

  2. ==============================

    2.참조에서 :

    참조에서 :

  3. from https://stackoverflow.com/questions/36172745/how-does-redis-expire-keys by cc-by-sa and MIT license