Thuta Learning
ရှာဖွေရန်
Redis
IntermediateData & Databasesbeginner

Cache Invalidation နှင့် Versioning

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Cache Invalidation နှင့် Versioning concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • နမူနာ Redis command/code ကို ကိုယ်တိုင် run ပြီး output စစ်နိုင်ရန်
  • Tutorial Platform project နှင့် production scenario တွင် မှန်ကန်စွာအသုံးချနိုင်ရန်

နားလည်ထားရမယ့် အချက်

Cache correctness က TTL တစ်ခုတည်းနဲ့မပြီးပါ။ Entity update event အပေါ် targeted deletion၊ schema ပြောင်းရာတွင် key version၊ list cache များအတွက် dependency mapping လိုပါတယ်။ Logical namespace version က keys အများကြီးချက်ချင်းမဖျက်ဘဲ new namespace သို့ပြောင်းနိုင်သော်လည်း old keys ကို expiry ဖြင့်ရှင်းရပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Tutorial 42 update ဖြစ်လျှင် detail key နဲ့ category list keys ကိုဖျက်မယ်။ Payload schema ပြောင်းလျှင် `v1` မှ `v2` ပြောင်းမယ်။ Bulk import အတွက် `catalog:namespace-version` counter တိုးပြီး requests အသစ်ကို namespace အသစ်သုံးစေမယ်။

အတူတူ စမ်းရေးကြည့်မယ်

shell
SET catalog:namespace-version 7
SET catalog:v7:tutorial:42 '{"title":"Redis"}' EX 300
DEL catalog:v7:tutorial:42
DEL catalog:v7:list:data:page:1
INCR catalog:namespace-version
You should see
Selective invalidation နှင့် instant namespace rollover နှစ်မျိုးရမည်။

၅ မိနစ် စမ်းကြည့်

Author rename လုပ်လျှင် ဘယ် cache keys များပျက်ရမလဲ dependency table ဆွဲပါ။

သတိလေးတစ်ချက်

Version တိုးပြီး old keys ကို expiry မပေးထားလျှင် orphaned memory စုပြုံလာပါတယ်။

Redis — Keyspace NotificationsRedis

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Version တိုးပြီး old keys ကို expiry မပေးထားလျှင် orphaned memory စုပြုံလာပါတယ်။
  • နမူနာ command ကို production Redis ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test instance နဲ့ recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

လေ့ကျင့်ခန်း

Author rename လုပ်လျှင် ဘယ် cache keys များပျက်ရမလဲ dependency table ဆွဲပါ။

You'll know it worked when: Selective invalidation နှင့် instant namespace rollover နှစ်မျိုးရမည်။

Cache Invalidation နှင့် Versioning | Thuta Learning