Skip to main content

คำสั่ง Redis TTL

1. บทนำ

Redis เป็นฐานข้อมูลแบบ In-memory ที่มีฟีเจอร์สำหรับการกำหนดเวลาหมดอายุของคีย์ คำสั่ง TTL ใช้เพื่อตรวจสอบระยะเวลาที่เหลือก่อนที่คีย์จะหมดอายุ

2. คำสั่ง TTL คืออะไร?

คำสั่ง TTL (Time-To-Live) ใช้เพื่อตรวจสอบเวลาหมดอายุของคีย์ที่มีการกำหนดค่า EXPIRE ไว้ โดยจะแสดงค่าจำนวนวินาทีที่เหลือก่อนที่คีย์จะถูกลบออกจาก Redis

3. รูปแบบการใช้งาน

TTL <key>

โดยที่:

  • <key> คือคีย์ที่ต้องการตรวจสอบเวลาหมดอายุ

4. ตัวอย่างการใช้งาน

4.1 การตรวจสอบเวลาหมดอายุของคีย์ที่มี EXPIRE

127.0.0.1:6379> SET mykey "Hello, Redis"
OK
127.0.0.1:6379> EXPIRE mykey 30
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) 25

ในตัวอย่างนี้:

  1. ใช้ SET mykey "Hello, Redis" เพื่อสร้างคีย์ mykey
  2. ใช้ EXPIRE mykey 30 เพื่อกำหนดเวลาหมดอายุ 30 วินาที
  3. ใช้ TTL mykey เพื่อตรวจสอบเวลาที่เหลือของคีย์ ซึ่งในตัวอย่างนี้คือ 25 วินาที

4.2 กรณีคีย์ไม่มีเวลาหมดอายุ

127.0.0.1:6379> SET mykey2 "Persistent Data"
OK
127.0.0.1:6379> TTL mykey2
(integer) -1

หากคีย์ไม่มีการกำหนด EXPIRE ค่า TTL จะคืนค่า -1 แสดงว่าคีย์นี้ไม่มีการหมดอายุ

4.3 กรณีคีย์ไม่มีอยู่ในฐานข้อมูล

127.0.0.1:6379> TTL non_existing_key
(integer) -2

หากคีย์ไม่มีอยู่ในฐานข้อมูล คำสั่ง TTL จะคืนค่า -2 หมายความว่าคีย์นั้นไม่ถูกพบใน Redis

5. ข้อควรระวัง

  • หากคีย์ไม่มีการตั้งค่า EXPIRE จะได้รับค่า -1
  • หากคีย์ไม่อยู่ในฐานข้อมูล จะได้รับค่า -2
  • คำสั่ง TTL ใช้ร่วมกับ EXPIRE และ PERSIST เพื่อควบคุมอายุการใช้งานของข้อมูล

6. สรุป

  • TTL ใช้เพื่อตรวจสอบเวลาหมดอายุของคีย์
  • คืนค่าเป็นจำนวนวินาทีที่เหลือก่อนที่คีย์จะหมดอายุ
  • หากคีย์ไม่มีการตั้งค่า EXPIRE จะคืนค่า -1
  • หากคีย์ไม่มีอยู่ในฐานข้อมูล จะคืนค่า -2
  • เป็นคำสั่งสำคัญสำหรับการจัดการข้อมูลที่มีการหมดอายุใน Redis