こんにちは! 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コマンド。ぜひ今日の開発やローカル環境の検証で試してみてくださいね。
それでは、また次の冒険でお会いしましょう!バッチリマスターできましたね!
コメント