Redisでキーに有効期限(TTL)を設定する方法 – EXPIRE・PEXPIRE・EXPIREAT・PEXPIREATコマンド徹底解説
このチュートリアルでは、Redisのキーに有効期限(タイムアウト)を設定する方法を、EXPIRE、PEXPIRE、EXPIREAT、PEXPIREATの4つのコマンドを使って詳しく解説します。用途に応じて秒単位・ミリ秒単位、あるいはUnixタイムスタンプでの指定が可能です。
秒単位で有効期限を設定する(EXPIRE)
キーに秒単位の有効期限を設定するには、redis-cliでEXPIREコマンドを使用します。指定した秒数はTTL(Time To Live:生存時間)として扱われます。なお、秒数に0以下の値を指定した場合、キーは即座に削除されるので注意してください。
構文
redis host:post> EXPIRE <key name> <seconds>
戻り値
1 : 有効期限が正常に設定された場合 0 : 指定したキーが存在しない場合
実行例

ミリ秒単位で有効期限を設定する(PEXPIRE)
より細かい単位で有効期限を制御したい場合は、ミリ秒単位で期限を設定できるPEXPIREコマンドを使用します。キャッシュの精密な制御などに便利です。
構文
redis host:post> PEXPIRE <key name> <milliseconds>
戻り値
1 : 有効期限が正常に設定された場合 0 : 指定したキーが存在しない場合
実行例

Unixタイムスタンプ(秒)で有効期限を設定する(EXPIREAT)
有効期限を相対時間ではなく絶対的な日時で指定したい場合は、EXPIREATコマンドを使用します。Unixタイムスタンプとは、1970年1月1日0時0分0秒(UTC)からの経過秒数を表す値です。過去の日時を指定すると、キーは即座に削除されます。
構文
redis host:post> EXPIREAT <key name> <unix timestamp in seconds>
戻り値
1 : 有効期限が正常に設定された場合 0 : 指定したキーが存在しない場合
実行例

Unixタイムスタンプ(ミリ秒)で有効期限を設定する(PEXPIREAT)
ミリ秒精度のUnixタイムスタンプで有効期限を指定したい場合は、PEXPIREATコマンドを使用します。EXPIREATとの違いはタイムスタンプの単位のみで、EXPIREATが秒単位であるのに対し、PEXPIREATはミリ秒単位で指定する点です。
構文
redis host:post> PEXPIREAT <key name> <unix timestamp in milliseconds>
戻り値
1 : 有効期限が正常に設定された場合 0 : 指定したキーが存在しない場合
実行例

4つのコマンドの使い分けまとめ
| コマンド | 単位 | 指定方式 |
|---|---|---|
| EXPIRE | 秒 | 相対時間(TTL) |
| PEXPIRE | ミリ秒 | 相対時間(TTL) |
| EXPIREAT | 秒 | 絶対時刻(Unixタイムスタンプ) |
| PEXPIREAT | ミリ秒 | 絶対時刻(Unixタイムスタンプ) |
参考ドキュメント
- EXPIRE コマンド公式ドキュメント
- PEXPIRE コマンド公式ドキュメント
- EXPIREAT コマンド公式ドキュメント
- PEXPIREAT コマンド公式ドキュメント
以上が、Redisデータストアでキーに有効期限を設定する4つのコマンドの解説でした。この記事が役に立った場合は、ぜひコメントで感想をお聞かせください。また、周囲の方へのシェアもお待ちしています。
-
【Redis入門】HSET・HSETNX・HMSETコマンドでハッシュのフィールドに値を設定する方法
このチュートリアルでは、Redisのキーに格納されたハッシュ値の各フィールドに対して値を設定する方法を解説します。使用するのは HSET、HSETNX、HMSET の3つのコマンドです。それぞれの構文、戻り値、実行例を順番に見ていきましょう。 HSETコマンドとは HSET コマンドは、指定したキーに格納されているハッシュ内の指定フィールドに値を設定します。 フィールドがすでに存在する場合は、既存の値が上書きされます。 キーが存在しない場合は、設定操作の前にハッシュを保持する新しいキーが自動的に作成されます。 キーは存在するものの、格納されている値がハッシュ型でない場合はエラーが返されます。
-
Redisでキーに文字列値を設定する方法を徹底解説 – SET / SETNX / SETEX / PSETEX コマンドの使い方
このチュートリアルでは、Redisのデータストア上で指定したキーに文字列値を設定する方法について、SET、SETNX、SETEX、PSETEX の4つのコマンドを使って詳しく解説します。それぞれのコマンドの動作の違いや使い分けのポイントもあわせて紹介するので、Redisの文字列操作をマスターしたい方はぜひ参考にしてください。 SETコマンドとは SETコマンドは、指定したキーに文字列値を設定するための最も基本的なコマンドです。キーがすでに存在する場合は、その型に関係なく値が上書きされます。また、キーに設定されていた以前の有効期限(TTL)も削除される点に注意が必要です。 SETコマンドのオプシ