ভাগ করা ক্যাশে - অবৈধ সেরা অনুশীলন


14

আমি জানতে চাই ক্যাশে অবজেক্টগুলি অবৈধ / আপডেট করার জন্য আরও ভাল পদ্ধতির কী হতে পারে।

পূর্বশর্ত

  • রিমোট মেমক্যাচ করা সার্ভার থাকা (একাধিক অ্যাপ্লিকেশনের ক্যাশে হিসাবে পরিবেশন করা)
  • সমস্ত সার্ভার অ্যাজুরে দ্বারা হোস্ট করা হয় (সখ্য অঞ্চল, একই ডেটা সেন্টার)
  • ক্যাশে অবজেক্টের আকার 200 বাইট থেকে 50 কিলোবাইট পর্যন্ত


দৃষ্টিভঙ্গি 1 (হিসাবে ক্যাশে সংরক্ষণ করুন)

  1. অবজেক্ট এ তৈরি করা হয় -> ডাটাবেসে স্টোর এবং ক্যাশে স্টোর
  2. ক্লায়েন্ট দ্বারা অনুরোধ করা একটি বস্তু -> অস্তিত্বের জন্য ক্যাশে চেক করুন, অন্যথায় ডেটাবেস থেকে আনা এবং ক্যাশে সঞ্চয় করুন
  3. অবজেক্ট এ আপডেট হয় -> ডাটাবেসে স্টোর, ক্যাশে স্টোর

অ্যাপ্রোচ 1 আরও সহজবোধ্য বলে মনে হচ্ছে। যদি কিছু তৈরি করা হয় তবে ক্যাশে অ্যাসাপে রাখুন। কারও কাছে এটির প্রয়োজন হবে না।


পদ্ধতির 2 (অলস ক্যাশে স্টোর)

  1. অবজেক্ট এ তৈরি করা হয় -> ডাটাবেসে স্টোর
  2. ক্লায়েন্ট দ্বারা অনুরোধ করা একটি বস্তু -> অস্তিত্বের জন্য ক্যাশে চেক করুন, অন্যথায় ডেটাবেস থেকে আনা এবং ক্যাশে সঞ্চয় করুন
  3. অবজেক্ট এ আপডেট হয় -> ডাটাবেসে স্টোর, ক্যাশে কী মুছুন

অ্যাপ্রোচ 2 আরও স্মৃতি সচেতন বলে মনে হচ্ছে। এই পদ্ধতির মধ্যে কেবল অনুরোধ করা আইটেমগুলি ক্যাশে যান।


প্রশ্ন 1: পারফরম্যান্সের কথা মনে রেখে, এর চেয়ে ভাল পদ্ধতির কী হবে? মেমরি বা সিপিইউ এখনও গণনা করে না।

প্রশ্ন 2: আমার চিন্তাভাবনা কি এক ধরণের অকাল অপ্টিমাইজেশান?

প্রশ্ন 3: অন্য কোন চিন্তা? অন্যান্য পন্থা?

উত্তর:


12
  1. অপরিবর্তনযোগ্য, এটি নির্ভর করে বলার অপেক্ষা রাখে না। অনেকগুলি কারণ রয়েছে যা নির্ধারণ করবে যে কোন পদ্ধতির ক্ষেত্রে আপনার ক্ষেত্রে সবচেয়ে ভাল হতে চলেছে, উদাহরণস্বরূপ: সৃজিত বস্তুগুলি তৈরি হওয়ার কিছুক্ষণ পরে তা পুনরুদ্ধার করা কি স্বাভাবিক? অ্যাক্সেসের আপডেটের অনুপাত কী?
  2. করছেন। আপনার ক্যাশে দরকার তা স্থির করে: আপনি যদি ডেটা ছাড়াই অপ্টিমাইজ করছেন তবে হ্যাঁ, এটি প্রযুক্তিগতভাবে অকাল অপ্টিমাইজেশন। আমি প্রযুক্তিগতভাবে বলছি যেহেতু অভিজ্ঞতা / প্রচলিত জ্ঞান আপনাকে বলতে পারে যে আপনার কোনও ধরণের ক্যাশে প্রয়োজন। করছেন। ক্যাশে কীভাবে সেরা কাজ করবে তা স্থির করে: হ্যাঁ, এটি অবশ্যই অকালীন অপটিমাইজেশন।
    • অপ্টিমাইজেশন প্রায়শই সেরা / সর্বাধিক অনুকূল সমাধান সন্ধান করার বিষয়ে নয়। এটি নিম্নলিখিত হিসাবে যেতে হবে:
      1. সিস্টেমে বাধা খুঁজে বার করুন।
      2. কাজের সর্বনিম্ন পরিমাণের সাথে আপনি কোথায় সবচেয়ে বড় পার্থক্য করতে পারবেন তা সন্ধান করুন।
      3. সর্বনিম্ন কাজ করুন!
      4. এটি এখনও যথেষ্ট দ্রুত? যদি তা না হয় তবে # 1 এ যান।
      5. সম্পন্ন!
    • সত্যি বলতে, আপনি যে পদ্ধতির বর্ণনা দিয়েছেন তার দুটিওই জটিল জটিল নয়। উভয়ই বাস্তবায়ন করে না এবং দেখুন যে কোনটি সবচেয়ে ভাল কাজ করে?
    • # 2 পদক্ষেপের পদক্ষেপটি "অবজেক্ট এ আপডেট হয়ে যায় -> ডাটাবেসে স্টোর, ক্যাশে আপডেট এন্ট্রি" তে পরিবর্তন করা যেতে পারে।

বাউকিটা, আপনার উত্তরের জন্য ধন্যবাদ। আমি এটি প্রশংসা করি।
lurkerbelow

সাহায্য করার জন্য @lurkerbelow খুশি।
ওয়াঘানড্রয়েড

2

মেমক্যাচড তার নিজস্ব নীতি দ্বারা অবজেক্টগুলিকে পরিচালনা করে, যা ক্যাশেড অবজেক্টের মেয়াদ শেষ হয়ে যাবে যদি কেউ এটিকে অ্যাক্সেস না করে বা মেমচেড মেমরির বাইরে চলে যায়। সুতরাং, আপনার প্রথম দৃষ্টিভঙ্গিটি ভাল ধারণা নয় কারণ আপনি যখন বস্তুগুলি তৈরি করছেন তখন মেমচেড করা আপনার অবজেক্টটি মেমরির বাইরে থাকার কারণে অবৈধ হতে থাকবে।

চতুর্থাংশ 1। পারফরম্যান্সের দিক থেকে 2 অ্যাপ্রোচ করা আরও ভাল হবে কারণ এটি মেমক্যাচে আপত্তি পাঠায় না, যদিও পারফরম্যান্সের উন্নতি খুব কম।

Q2 এর। এটা বলা কঠিন. ধরে নিন আপনি বাধাটি জানেন এবং পদ্ধতির খসড়া এটি অকাল হবে না।

চতুর্থাংশ 3। অন্যান্য উপায় রয়েছে যেমন কেবল মেমক্যাচে ক্যাশে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.