redis有効期限


redisでは、キーに有効期限を設定できます.時間が経つと、キーは自動的に削除されます.このメカニズムは検証コードなどの時効性のあるものを格納するためによく用いられ,データの有効期間が過ぎると自動的に削除されてメモリスペースを節約する.
期限切れに関する命令は、EXPIRE、PERSIST、TTLの3つあります.
  • EXPIRE key seconds–設定keyがseconds秒後に期限切れ
  • PERSIST key–keyの期限切れを削除し、期限切れにしない
  • TTL key–期限切れまであと数秒
  • 簡単な例を見てみましょう
    redis 127.0.0.1:6379> SET name kai
    OK
    redis 127.0.0.1:6379> EXPIRE name 10
    (integer) 1
    redis 127.0.0.1:6379> TTL name
    (integer) 2
    redis 127.0.0.1:6379> TTL name
    (integer) -1

    TTLコマンドの戻り値が0より大きい場合は、期限切れになるかどうかを示します.そうでない場合は、キーに期限切れがないか、キーが存在しないかを示します.PERSISTの使い方を見てみましょう
    redis 127.0.0.1:6379> SET name kai
    OK
    redis 127.0.0.1:6379> EXPIRE name 100
    (integer) 1
    redis 127.0.0.1:6379> PERSIST name
    (integer) 1
    redis 127.0.0.1:6379> TTL name
    (integer) -1
    PERSIST nameコマンドのようなnameキーが期限切れになっていない場合はTTL nameコマンドを送信すると、redisは-1を返します.