কীভাবে বেঁচে থাকার সময় এবং সময়ের সাথে নিষ্ক্রিয় হওয়ার সময়টির মধ্যে পার্থক্য রয়েছে


103

এহচে দস্তাবেজগুলি বলেছেন:

timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires

timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. The maximum time between creation time and when an element expires.

আমি টাইম টোইডল সেকেন্ড বুঝতে পারি

তবে এর অর্থ কি কোনও ক্যাশে আইটেমটি তৈরি এবং প্রথম অ্যাক্সেসের পরে, টাইমটোলাভিসেকেন্ডস আর কার্যকর হয় না?

উত্তর:


156

timeToIdleSecondsক্যাশেড অবজেক্টটিকে যতক্ষণ তার চেয়ে কম সময়ের মধ্যে অনুরোধ করা হয় ততক্ষণ রাখতে সক্ষম করে timeToIdleSecondstimeToLiveSecondsকতবার বা যখন এটি অনুরোধ করা হয়েছিল তা নির্বিশেষে ক্যাশেড অবজেক্টটিকে বহু সেকেন্ড পরে অকার্যকর করে তুলবে।

যে বলা যাক timeToIdleSeconds = 3। তারপরে 4 সেকেন্ডের জন্য অনুরোধ না করা হলে অবজেক্টটি অবৈধ হবে।

যদি timeToLiveSeconds = 90তা হয় তবে 90 মিনিটের পরে অবজেক্টটি ক্যাশে থেকে সরানো হবে, এমনকি যদি তার স্বল্প জীবনের 90 তম সেকেন্ডে কিছু মিলিসেকেন্ডের জন্য অনুরোধ করা হয়েছিল।


1
সুতরাং আমি অনুমান করি যে আমরা সবসময় আইডলটাইম সেট করতে চাই <টিটিএল
জ্যাক রেনে

উপরের মন্তব্যে আপনি যখন বলছেন যে "চলুন যে সময়টুকু আইডলসেকেন্ডস = 3 বলুন। অবজেক্টটি যদি 4 সেকেন্ডের জন্য অনুরোধ না করা হয় তবে তা বাতিল হয়ে যাবে?", আপনি যখন অকার্যকর বলবেন - এর অর্থ কী? এটি কি গাদা থেকে এটি সরিয়ে দেয়? যদি বিষয়টিকে ক্যাশে থেকে সরানো হয়, তবে আমি টাইমলাইভ প্যারামিটারটি মোটেই কী ব্যবহার করব তা নিয়ে আমি বিভ্রান্ত। যখন আমরা পোকি করতাম, আমরা দেখতে পাচ্ছি যে সময়সূচিপত্রের পরে ডেটা উত্স থেকে আনা হয়েছে। যদিও টাইমলাইভ অনেক বেশি মান, তবে আমি আশা করব যে এটি ক্যাশে থেকে আনা হয়েছে যেহেতু টাইমটোলাভ আমাদের ক্ষেত্রে টাইমটাইডলের চেয়ে অনেক বেশি মান।
গায়াথ্রি

3
@ গায়াথ্রি যদি আপনার কাছে এমন ডেটা আইটেম থাকে যা প্রায়শই (প্রতিটি দুই সেকেন্ড) অ্যাক্সেস করা হয় তবে ষাট সেকেন্ডের টিটিএল থাকে। অবিচ্ছিন্নভাবে অ্যাক্সেস করা থাকলেও (কখনই নিষ্ক্রিয় হয় না) এটিকে উত্স থেকে প্রতি ষাট সেকেন্ডে একবার টেনে আনতে হবে।
সি। রস

8
প্রথম মন্তব্যে ফলো-আপ হিসাবে (@ জ্যাকারেন ম্যাস্রিন দ্বারা)। কেটিটিএল এবং টিটিআই উভয় ক্ষেত্রেই (যেমন শূন্যের চেয়ে বড়): 1) টিটিআই> = টিটিএল: টিটিআইয়ের কোনও প্রভাব নেই । এন্ট্রি 2 এর পরে মেয়াদোত্তীর্ণ হিসাবে বিবেচিত হয় creationTime + TTL) টিটিআই <টিটিএল: প্রবেশের পরে মেয়াদোত্তীর্ণ হিসাবে বিবেচিত হয়min((max(lastAccessTime, creationTime) + TTI), (creationTime + TTL))
তৈমুর মিলোভানভ

"নির্বিশেষে" -> "নির্বিশেষে"
ম্যাগনাস

41

যদি আপনি উভয় সেট করেন তবে expirationTimeতা হবে Math.min(ttlExpiry, ttiExpiry), কোথায় থাকবে

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

সম্পূর্ণ উত্স কোড এখানে


1
এখন আচরণটি আমার জন্য অর্থবোধ করে। এটি উল্লেখ করার জন্য ধন্যবাদ বিশেষত Math.minঅংশটি Thanks
প্রকাশ কে

এই কোডটি উপরোক্ত মানুষের ব্যাখ্যা থেকে আরও স্পষ্ট করে তোলে :-)
ম্যাগা আবদুরখমানভ

22

থেকে পুরাতন 1.1 ডকুমেন্টেশন (গুগল ক্যাশে, যা ব্রাউজ করা আরো সহজ ও বর্তমান ডক্স আমি যতদূর জানি চেয়ে বেশি তথ্যপূর্ণ পাওয়া):

timeToIdleSeconds

এটি একটি ঐচ্ছিক বৈশিষ্ট্য।

আইনি মানগুলি 0 এবং পূর্ণসংখ্যার মধ্যে পূর্ণসংখ্যা হয় MA MAX_VALUE।

এটি সর্বশেষ ব্যবহৃত হওয়ার পরে এটি কোনও এলিমেন্টের বেঁচে থাকা সেকেন্ডের সংখ্যা। ব্যবহৃত মানে sertedোকানো বা অ্যাক্সেস করা।

0 এর একটি বিশেষ অর্থ রয়েছে, যা অলস হওয়ার জন্য সময়টির জন্য এলিমেন্টটি পরীক্ষা করা নয়, অর্থাত্ এটি চিরতরে অলস হয়ে যায়।

ডিফল্ট মান 0 হয়।

timeToLiveSeconds

এটি একটি ঐচ্ছিক বৈশিষ্ট্য।

আইনি মানগুলি 0 এবং পূর্ণসংখ্যার মধ্যে পূর্ণসংখ্যা হয় MA MAX_VALUE।

এটি তৈরির পর থেকে এটি একটি এলিমেন্টের সংখ্যাটি সেকেন্ডে বেঁচে থাকবে। ক্যাশে.পুট পদ্ধতিটি ব্যবহার করে তৈরি করা মানে ক্যাশে sertedোকানো।

0 এর একটি বিশেষ অর্থ রয়েছে, যা বেঁচে থাকার জন্য এলিমেন্টটি পরীক্ষা করা নয়, অর্থাৎ এটি চিরকাল বেঁচে থাকবে।

ডিফল্ট মান 0 হয়।

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