【入門編】 EXPIREコマンド – Redis

こんにちは! Redisの世界へようこそ。
今日は、Redisを使いこなす上で絶対に避けて通れない、超重要かつめちゃくちゃ便利な機能「EXPIRE(エクスパイア)コマンド」についてお話ししますね。

「データベースの容量がパンクしそう…」
「一時的なデータだから、古くなったら勝手に消えてほしいな…」

そんな悩みを持つあなたを救うのが、このEXPIREです。ここをクリアすれば、Redisの基本はバッチリマスターできますよ。肩の力を抜いて、一緒に楽しく学んでいきましょう!

—

1. EXPIREコマンドってなに?(日常の例えで理解する)

いきなり難しい専門用語を使うのはやめましょう。まずは身近な例えから。

スーパーに行くと、お惣菜コーナーに「消費期限」のシールが貼ってありますよね。お弁当を作った瞬間から「あと3時間で食べてね」というタイムリミットが設定され、時間が来ると売り場から回収(削除)されます。

RedisのEXPIREも、まさにこれと同じです。
キー(データの入れ物)に対して、「このデータは作ってから〇秒後に自動で消えてね」という期限を設定することができます。

永久に残しておきたくない一時的なデータ(例えば、ユーザーの一時的なログイン状態や、数分間だけキャッシュしておきたいWebページのデータなど)に、そっと時限爆弾ならぬ「消滅タイマー」をセットするイメージですね。

—

2. 早速使ってみよう!基本の操作と動き

百聞は一見にしかず。実際にRedisのコマンドを叩いてみましょう。

まずは、普通にキーにデータを保存します。ここでは `session:12345` というキーに「ログイン中」というデータを入れます。

ユーザーのセッションデータを保存する
127.0.0.1:6379> SET session:12345 “login_active”
OK

ここで、このデータに「10秒間の寿命」を与えてみます。それが `EXPIRE` コマンドです。

このキーを10秒後に消滅させる設定をする
127.0.0.1:6379> EXPIRE session:12345 10
(integer) 1

(※成功すると `(integer) 1` が返ってきます)

これでタイマーが動き始めました!
「今、あと何秒残ってる?」と気になったときは、TTL(Time To Live)コマンドを使います。

残り時間を秒単位で確認する
127.0.0.1:6379> TTL session:12345
(integer) 7 # あと7秒で消えるよ

そして、10秒が経過したあとに同じキーを覗いてみると……?

10秒経過したあとにデータを取得してみる
127.0.0.1:6379> GET session:12345
(nil) # データが消えている!((nil)は「何もない」という意味です)

見事に自動で消えてなくなりましたね!これがEXPIREの基本的な仕組みです。

—

3. 先輩エンジニアが教える「知っておくと得するポイント」

基本が分かったところで、現場で役立つ少し踏み込んだ知見をシェアしておきますね。

① 最初から期限付きで保存する技(SETEX)

「データを登録して、すぐにEXPIREを設定する」というのはよくあるパターンのため、Redisにはそれを1回でやってくれる`SETEX`という便利なコマンドも用意されています。

キーの保存と10秒の期限設定を同時に行う(スマート!)
127.0.0.1:6379> SETEX session:99999 10 “login_active”
OK

こういう細かいテクニックを知っていると、コードがスッキリしてカッコいいですよ。

② 有効期限を「やっぱりナシ」にする方法

「あ、やっぱりこのデータ、消えないように延長したい!」あるいは「タイマーを解除したい」と思ったときは、`PERSIST(ペシスト)`というコマンドを使います。

寿命のカウントダウンを解除して、普通の永久データに戻す
127.0.0.1:6379> PERSIST session:12345
(integer) 1

これでデータは消えずにずっと残るようになります。状況に応じた使い分けが大切です。

—

4. おわりに:Redisのメモリを守る優しい番人

なぜRedisがこれほどまでに「有効期限(EXPIRE)」という機能にこだわっているのか。それは、Redisが「メモリ(RAM)」という限られた高速な領域をフルに使ってデータを保持するデータベースだからです。

無限にデータを入ロしっぱなしにすると、すぐにメモリがパンクしてしまいます。
「不要になったデータは、時間が来たら自動で消えてもらう」
このEXPIREという仕組みがあるおかげで、私たちはメモリ不足を恐れず、安心して高速なキャッシュや一時データストアを運用できるのです。

Redisという優秀な相棒と上手に付き合うための第一歩、EXPIREコマンド。ぜひ今日の開発やローカル環境の検証で試してみてくださいね。

それでは、また次の冒険でお会いしましょう!バッチリマスターできましたね!

コメント

タイトルとURLをコピーしました