[Redis] TTL - 언제 업데이트 될까?

2024. 12. 22. 15:57·DataBase/Redis

 

개요

Redis TTL 은 EXPIRE 명령어로 쉽게 설정할 수 있다.

한 번 설정한 TTL이 '갱신'되거나 '유지'되는 케이스를 미리 알고 사용해야한다.

이 글은 Redis Command 별 TTL이 언제 갱신 또는 유지되는지를 소개한다.

 

 

키에 매핑된 값 전체를 완전히 대치하는 연산만이 TTL을 갱신한다.

 

ex)

  • DEL
    값을 아예 '삭제' 해버린다.
  • SET
    값을 새 값으로 아예 '대치' 해버린다.

 

 

`name` key 에 설정된 300초 TTL이 새로운 값인 `m-falcon` 으로 대치함으로써 제거되었다.

 

 

키에 매핑된 기존 값에 연산을 하거나
값을 추가하는 연산은 TTL을 유지한다.

 

ex)

  • INCR / DECR
    기존 값에 +-1
  • LPUSH / LPOP
    기존 List에 원소 추가/제거
  • SADD/SREM
    기존 Set에 원소 추가/제거
  • HSET
    기존 property 를 변경
  • RENAME
    key 이름을 변경

 

member2team 이라는 SET 을 만들고 300초 TTL을 설정한 후

새 값(team2)를 추가한 뒤 다시 TTL을 조회한 결과 기존 TTL값이 유지되어 284초가 남음을 나타낸다.

새 값이 추가되어도 TTL은 계속 흐른다.

 

RENAME 명령어는 Redis 키 이름을 변경하므로 값에 영향이 없다.

따라서 기존 TTL이 유지된다.

 

Conclusion

  TTL 갱신 TTL 유지
발생 케이스 Value 를 완전히 대치하는 경우 Value 일부 값을 추가/삭제
Key 이름만 변경
Redis Command - DEL
- SET
- INCR/DECR
- LPUSH/LPOP
- SADD/SREM
- HSET
- RENAME

 

Reference

 

EXPIRE

Sets the expiration time of a key in seconds.

redis.io

 

 

 

저작자표시 (새창열림)

'DataBase > Redis' 카테고리의 다른 글

[Redis] TTL - 어떤 방식으로 만료된 키를 제거할까?  (0) 2024.12.22
[Redis] DataStructure Lifecycle  (0) 2024.12.19
[Redis] redis.conf 권장설정  (0) 2021.12.21
'DataBase/Redis' 카테고리의 다른 글
  • [Redis] TTL - 어떤 방식으로 만료된 키를 제거할까?
  • [Redis] DataStructure Lifecycle
  • [Redis] redis.conf 권장설정
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (429)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (64)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (23)
        • Error (7)
      • 기타 (68)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (12)
        • git (19)
        • 잡동사니 (26)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    linux
    Programmers
    백준
    PostgreSQL
    JPA
    kafka
    Bitcoin
    ubuntu
    Kotlin
    C++
    java
    프로그래머스
    database
    docker
    android
    algorithm
    Git
    javascript
    Spring
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
[Redis] TTL - 언제 업데이트 될까?
상단으로

티스토리툴바