আমার নিজের প্রশ্নের উত্তর দিতে ফিরে আসছি, এখানে মূল সমস্যাটি হ'ল কীভাবে সবসময় একই সাথে মেয়াদ শেষ হয়ে যাওয়া এড়ানো যায়। যদি এটি হওয়ার অনুমতি দেওয়া হয় তবে ক্যাশেটিকে পুনরায় বসানোর সময় সিস্টেমটি ধীর হয়ে যাবে এবং ভিড় হয়ে যাবে।
বেশিরভাগ সময়, বাস্তবে এটি কোনও সমস্যা নয়। সময়ের সাথে সাথে, সমস্ত উপাদানগুলি তাদের মেয়াদ শেষ হওয়ার সময়ের সাথে সাথে প্রবাহিত হতে থাকে। যদি একই সাথে সমস্তগুলি পুনরায় তৈরি করা হয় তবে এটি একটি কোডের গন্ধ কারণ এটি সম্ভবত একক উপাদান হিসাবে একসাথে ক্যাশে করা উচিত (উদাহরণস্বরূপ যদি আপনার কোনও পৃষ্ঠার অনন্য শিরোনাম, বডি এবং ফুটার আলাদাভাবে ক্যাশে থাকে, সম্ভবত আপনি করতে পারেন) কেবল পৃষ্ঠাটি ক্যাশে করুন)।
অবশ্যই অনেক সময় আছে যখন এক সাথে অনেকগুলি জিনিস ক্যাশে করা দরকার, যেমন সিস্টেম শুরু করার পরে, যদি আমরা পুরো ক্যাশে সাফ করে দিয়েছি বা ক্যাশে কীগুলি ঘোরানো হয়েছি। এই ক্ষেত্রে, এটি সাধারণত এতটা খারাপ হয় না কারণ উপাদানগুলি দ্রুত পূরণ করে, এবং মেয়াদগুলি পরবর্তীতে বিচ্ছিন্ন হয়ে যায়।
এই সমস্যাটি যে পরিমাণে রয়েছে তার কয়েকটি সমাধান রয়েছে:
- কেবল একটি নির্দিষ্ট সময়কালের পরিবর্তে একটি সীমার মধ্যে একটি এলোমেলো ক্যাশে সমাপ্তির সময়কাল বেছে নিন, উদাহরণস্বরূপ 60 মিনিটের পরিবর্তে 15 এবং 90 মিনিটের মধ্যে একটি এলোমেলো পূর্ণসংখ্যা।
- বাসি প্রতিক্রিয়ার অনুমতি দিন। কেবল কোনও ক্যাশে আইটেমটির মেয়াদ শেষ হয়ে গেছে, এর অর্থ এই নয় যে এটি এখনও সেখানে থাকলে আপনি এটি ব্যবহার করতে পারবেন না। ব্যবসায়ের প্রয়োজনের উপর নির্ভর করে মেয়াদ শেষ হওয়ার পরে মূল সংস্করণ আনার কোনও পারফরম্যান্স সমস্যা থাকলে এটি ব্যবহার করা গ্রহণযোগ্য হতে পারে। এইচটিটিপি-তে, এটি "অবশ্যই-পুনর্নির্মাণ" এর উদ্দেশ্য (যদি সত্য হয় তবে এর অর্থ সমাপ্তির পরে ক্যাশেড সংস্করণটি ব্যবহার না করা)।