Redis භාවිතා කරන වැඩසටහන් වල අතින් වැඩිම වාරයෙන් පෙනෙන කේෂ් පද්ධති රීතියක් නම් Cache‑Aside (lazy loading) වේ. නම නොදන්නා පරිදි ඔබත් මේ රීතිය භාවිතා කරමින් තිබේ නම්, දැන් එය නිවැරදිව අත්හදා බලන්න.
Cache‑Aside රීතියේ මූලික ක්රියාවලිය ඉතා සරලයි. පළමුව ඇප්පලිකේෂන් එකෙන් Redis‑ට යනවා, ඉල්ලූ කී එක තිබේද කියලා බලයි. තිබේ නම් (hit) එම අගය පෙන්වයි; නැත්නම් (miss) දත්ත ගබඩා (DB) එකෙන් ලබාගෙන, Redis‑ට TTL (Time‑to‑Live) සමඟ සුරකිමින් පසු පාරිභෝගිකයාට පිළිතුරු දෙයි.
උදාහරණයක් ලෙස, පරිශීලකයින්ගේ පැතිකඩ දත්ත ගැන කියමු. පළමුව redis.get('user:123') කරලා, දත්ත ලැබේ නම් ඒක JSON ලෙස පාර්ස් කරලා පෙන්වයි. නැතිනම් SELECT * FROM users WHERE id=123 කරලා, ලැබුන දත්ත redis.set('user:123', JSON.stringify(user), 'EX', 300) කරලා 5 මිනිත්තු කාලයක් තබා, පසුව පාරිභෝගිකයාට ආපසු දෙයි.
කේෂ් එක අසාර්ථක වූ අවස්ථාවලද මෙය හොඳයි. Redis පහලවුවත්, ඇප්පලිකේෂන් එක DB‑ට පැනලා ඉල්ලීම් කරයි; වේගය අඩුවුවත් සේවාව නතර නොවේ. ඒ නිසා graceful degradation කියලා කියන විශේෂත්වය ලැබේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාජයට Cache‑Aside රීතියේ ප්රයෝජන බොහොමයි:
- විකසකයින් – Node.js, Python, Java වැනි භාෂාවලින් Redis සමඟ පහසු සම්බන්ධතා ඇති නිසා, කේෂ් පාලනය තමන්ගේ කේතයෙන්ම කළ හැකිය.
- ව්යාපාර – වෙළඳපලේ උච්ච ගාණක පරිශීලකයන්ට දත්ත වේගයෙන් ලබා දීමට, DB‑ට ලෝඩ් අඩු කර, පරිශීලක අත්දැකීම ඉහළ දක්වයි.
- සිසුන් – කේෂ් පද්ධති පදනම ඉගෙන ගැනීම, Cloud‑Native සංවර්ධනයේ මූලික අංගයක් වන බැවින්, උපාධි හා පුහුණු පාඨමාලාවලට අත්යවශ්ය වේ.
Cache‑Aside රීතියේ ලිහිල් කාලයක් (TTL) තැබීම, කේෂ් අලුත් කරමින් තබා, පරණ දත්ත තවත් නොපෙනෙන ලෙස සකස් කරයි. තවත් වැදගත් කරුණක් නම්, ලිඛිත දත්ත වෙනස් වූ විට කේෂ් මකා දමා, ඊළඟ ඉල්ලීමේදී නැවත පූරණය කරගැනීමයි. මෙය “Delete‑on‑Write” ලෙස හැඳින්වේ, සහිත රේස් තත්වයන් (race conditions) වලින් ආරක්ෂා කරයි.
කේෂ් රීතියේ දෙකක් වැලැක්විය යුතු බග්ස් ඇත: stale‑cache race සහ thundering herd. පළමු එකේදී TTL කෙටි තබා, දෙවැනි එකේදී TTL‑වලට jitter එකක් එක් කර, lock mechanism එකක් භාවිතා කරලා අවම කළ හැකිය.
අවසන් වශයෙන්, Cache‑Aside රීතිය ඔබේ ඇප්පලිකේෂන් එකේ වේගය, විශ්වාසනීයතාවය, හා පරිහරණය පහසුකම් වැඩි කරයි. ඉදිරි කාලයේ Redis‑වලට නවතම caching strategy එකක් ලෙස මෙය අත්හදා බලන්න.