Memento memo.

Today I Learned.

Redisの有効期限系コマンド

redis-cliから叩いた場合のコマンドです

EXPIRE(key, seconds)

有効期限の設定(相対時間)

# key-valueを適当に設定
> SET ice "I'm melting..."
OK
# 有効期限を10秒にする
> EXPIRE ice 10
(Integer) 1
> EXISTS ice
(Integer) 1 # 10秒以内
> EXISTS ice
(Integer) 0 # 10秒以上経過

上記例はMULTIブロックを使わないとatomic性が保証されないので注意。

EXPIREAT(key, timestamp)

有効期限の設定(絶対時間)

timestampにはUNIX時間を指定します。redis-cli上ではTIMEコマンドで現在のUNIX時間が取得できます。

SETEX(key, seconds, value)

SET(key, value) + EXPIRE(key, seconds)のショートカット。

公式ドキュメント(SETEX – Redis)を見る限り、atomic性が保証されるので、 SET + EXPIREを使うよりこっちを使った方が良いみたいです。

> SETEX ice 10 "i'm melting..."
OK

TTL(key)

有効期限の残り秒数を表示

PERSIST(key)

タイムアウトを無効化

参考

7つのデータベース 7つの世界

7つのデータベース 7つの世界