Redis EXPIRE হ্যাশ কী

Redis Expire Hyasa Ki



রেডিস হ্যাশ হল একটি বিশেষ ধরনের ডেটা টাইপ যা JSON অবজেক্ট, জাভা হ্যাশম্যাপ বা পাইথন অভিধানের সাথে অনেক বেশি মিল। উপরন্তু, এটি ক্ষেত্র-মানের জোড়ার একটি সংগ্রহ যা ডোমেন অবজেক্টের মডেল করতে ব্যবহার করা যেতে পারে। রেডিস হ্যাশ ডেটা স্ট্রাকচার অত্যন্ত মেমরি দক্ষ যেখানে প্রতিটি হ্যাশ কী চার বিলিয়ন ফিল্ড-ভ্যালু জোড়া পর্যন্ত সঞ্চয় করতে পারে। সবচেয়ে গুরুত্বপূর্ণ, HSET, HGET, HMGET ইত্যাদির মতো মৌলিক হ্যাশ অপারেশনগুলি ধ্রুবক সময়ের জটিলতার উপর কাজ করে।


রেডিস হ্যাশ কীগুলির বেঁচে থাকার জন্য অসীম সময় রয়েছে (TTL) যার অর্থ হল যে তারা অবিচল থাকে তারা DEL এর মতো কমান্ড ব্যবহার করে স্পষ্টভাবে মুছে ফেলা হয়। এই নিবন্ধে, আমরা EXPIRE কমান্ড ব্যবহার করে Redis হ্যাশের জন্য TTL সেট করার উপর ফোকাস করব।







Redis EXPIRE কমান্ড

EXPIRE কমান্ডটি একটি Redis হ্যাশ, সেট, তালিকা, ইত্যাদির একটি প্রদত্ত কী-তে একটি টাইমআউট সেট করতে ব্যবহৃত হয়। টাইমআউটের মেয়াদ শেষ হলে Redis কী ডাটাবেস থেকে মুছে ফেলা হয়। সবচেয়ে গুরুত্বপূর্ণ, কী-এর বিষয়বস্তু মুছে ফেলা বা ওভাররাইট না হওয়া পর্যন্ত টাইমআউট অস্পষ্ট। একটি কী এর সাথে যুক্ত মান পরিবর্তন করা মেয়াদ শেষ হওয়ার সময়কে প্রভাবিত করে না।



EXPIRE কমান্ডের সিনট্যাক্স নিম্নরূপ:



EXPIRE কী expiry_time_seconds [ এনএক্স | জিএক্স | জিটি | এলটি ]


চাবি: হ্যাশ, তালিকা বা সেটের কী যা আপনাকে একটি টাইমআউট সেট করতে হবে।





মেয়াদ_সময়_সেকেন্ড: সেকেন্ডে টাইমআউট মান।

EXPIRE কমান্ড দ্বারা বেশ কিছু ঐচ্ছিক আর্গুমেন্ট গ্রহণ করা হয়।



NX: নির্দিষ্ট কী এর আগে থেকে কোনো মেয়াদ শেষ না হলেই টাইমআউট মান সেট করা হয়।

XX: যখন নির্দিষ্ট কীটির একটি বিদ্যমান টাইমআউট মান থাকে, তখন নতুন মেয়াদ নির্ধারণ করা হয়।

জিটি: যদি নতুন টাইমআউট মান বিদ্যমান থেকে বেশি হয়, তাহলে নতুন মেয়াদ সেট করা হয়।

এলটি: নতুন টাইমআউট মান সেট করা হয় যদি বিদ্যমান একটি নতুনটির থেকে বড় হয়।

সবচেয়ে গুরুত্বপূর্ণ, EXPIRE কমান্ডটি ধ্রুবক সময়ের জটিলতার উপর কাজ করে। কমান্ড এক্সিকিউশন সফল হলে পূর্ণসংখ্যা 1 ফেরত দেওয়া হয়। ভুল আর্গুমেন্ট বা বিদ্যমান কীগুলির কারণে অপারেশন ব্যর্থ হলে, 0 ফেরত দেওয়া হয়।

নিম্নলিখিত বিভাগে দেখানো হিসাবে আমরা একটি মেয়াদ শেষ হওয়ার সময় সেট করতে হ্যাশে EXPIRE কমান্ড ব্যবহার করব:

EXPIRE কমান্ড ব্যবহার করে Redis Hash মেয়াদ শেষ করুন

অনুমান করা যাক যে ব্যবহারকারী প্রতি একটি সেশনের তথ্য একটি Redis হ্যাশে সংরক্ষণ করা হয় অধিবেশন:আইডি:1000:ব্যবহারকারী:10। আমরা নিম্নরূপ একাধিক ক্ষেত্র-মানের জোড়া সহ একটি Redis হ্যাশ তৈরি করতে HMSET কমান্ড ব্যবহার করতে পারি:

hmset সেশন:id: 1000 :ব্যবহারকারী: 10 ব্যবহারকারীর নাম 'জাই' কুকি 'হ্যাঁ' পাসওয়ার্ড '389Ysu2'


আসুন HGETALL কমান্ড ব্যবহার করে তৈরি হ্যাশ পরিদর্শন করি।

hgetall অধিবেশন:id: 1000 :ব্যবহারকারী: 10



এছাড়াও, ব্যবহারকারী যদি 60 সেকেন্ডের বেশি সময় ধরে নিষ্ক্রিয় থাকে তবে সেশনটি 10 ​​সেকেন্ড পরে শেষ হয়ে যায়। সেশনের তথ্য সংরক্ষণ করে এমন হ্যাশের মেয়াদ শেষ হওয়ার সময় নির্ধারণ করে সেশনের মেয়াদ শেষ করা হয়।

আমরা EXPIRE কমান্ডটি নিম্নরূপ ব্যবহার করতে পারি:

মেয়াদ শেষ সেশন:id: 1000 :ব্যবহারকারী: 10 10


উল্লিখিত হিসাবে, টাইমআউট মান 10 সেকেন্ডে সেট করা হয়েছে।


প্রত্যাশিত হিসাবে, রিটার্ন মান হল 1 যার মানে হ্যাশের জন্য TTL সফলভাবে সেট করা হয়েছে। রেডিস স্টোর থেকে হ্যাশ কী মুছে ফেলার আগে বাকি সময় পরীক্ষা করা যাক। TTL কমান্ডটি নিম্নরূপ ব্যবহার করা যেতে পারে:

ttl অধিবেশন:id: 1000 :ব্যবহারকারী: 10



আউটপুটে দেখানো হয়েছে, হ্যাশটি স্বয়ংক্রিয়ভাবে সরানোর আগে তিন সেকেন্ড বাকি আছে। 10 সেকেন্ড পরে, TTL কমান্ড আউটপুট নিম্নরূপ:


যেহেতু -2 পূর্ণসংখ্যার উত্তর নির্দেশিত হয়েছে, হ্যাশের অস্তিত্ব নেই।

মেয়াদ শেষ হওয়া সময়ের অস্তিত্বের উপর ভিত্তি করে সেট করুন

EXPIRE কমান্ডটি একটি নির্দিষ্ট হ্যাশের জন্য মেয়াদ শেষ হওয়ার উপর ভিত্তি করে একটি নতুন সময়সীমা সেট করতে NX এবং XX আর্গুমেন্ট গ্রহণ করে। এর সাথে একটি নতুন হ্যাশ তৈরি করা যাক টাইমআউট নয় চাবি .

hmset noTimeOut নাম 'পরীক্ষা'


আগের হ্যাশে একটি নতুন মেয়াদ শেষ করার চেষ্টা করা যাক। উপরন্তু, আমরা EXPIRE কমান্ডে XX আর্গুমেন্ট পাস করি।

মেয়াদ শেষ না টাইমআউট পনের XX


যেহেতু আমরা নির্দিষ্ট করি XX কমান্ডের বিকল্প, মেয়াদ শেষ হওয়ার সময় সেট করা হবে না। XX বিকল্পটি আপনাকে একটি নতুন মেয়াদ শেষ হওয়ার সময় সেট করার অনুমতি দেয় না যদি নির্দিষ্ট হ্যাশ কী-এর সাথে যুক্ত কোনো বিদ্যমান টাইমআউট না থাকে।


যদি আমরা ব্যবহার করি এনএক্স বিকল্প, টাইমআউট মান 15 এ সেট করা হয়েছে।

মেয়াদ শেষ না টাইমআউট পনের এনএক্স



EXPIRE কমান্ডটি পূর্ণসংখ্যা 1 উত্তর প্রদান করে যার অর্থ হল টাইমআউট সঠিকভাবে সেট করা হয়েছে।

বিদ্যমান টাইমআউট মানের উপর ভিত্তি করে টাইমআউট সেট করুন

GT এবং LT বিকল্পগুলি বিদ্যমান টাইমআউট দৈর্ঘ্যের উপর ভিত্তি করে হ্যাশের মেয়াদ শেষ হওয়ার সময় সেট করতে ব্যবহার করা যেতে পারে।

আসুন একটি নতুন হ্যাশ তৈরি করি hashWithTimeout.

hmset hashWithTimeout field1 মান1


এর পরে, আমরা হ্যাশের জন্য 200 সেকেন্ডের মেয়াদ শেষ করার সময় সেট করি।

hashWithTimeout মেয়াদ শেষ 200


আসুন GT বিকল্পের সাথে হ্যাশের জন্য 100 সেকেন্ডের একটি নতুন টাইমআউট সেট করার চেষ্টা করি:

hashWithTimeout মেয়াদ শেষ 100 জিটি


যেহেতু GT বিকল্পটি নির্দিষ্ট করা হয়েছে, তাই EXPIRE কমান্ডটি পরীক্ষা করবে যে নতুন টাইমআউট মানটি বিদ্যমানটির চেয়ে বেশি কিনা এবং নতুন মেয়াদ শেষ হওয়ার সময় সেট করবে। এই উদাহরণে, নতুন টাইমআউট বিদ্যমান টাইমআউটের চেয়ে বেশি নয়। সুতরাং, কমান্ডটি নতুন মেয়াদ শেষ হওয়ার সময় সেট করবে না এবং 0 ফেরত দেওয়া হবে।


আসুন GT এর পরিবর্তে LT বিকল্পটি ব্যবহার করি। যেহেতু নতুন মেয়াদ শেষ হওয়ার সময় বর্তমানের চেয়ে কম, নিম্নলিখিত কমান্ডটি সফলভাবে নতুন টাইমআউট সেট করা উচিত।

hashWithTimeout মেয়াদ শেষ 100 এলটি


উপসংহার

সংক্ষেপে, Redis EXPIRE কমান্ডটি একটি প্রদত্ত কী-এর জন্য একটি TTL মান সেট করতে ব্যবহৃত হয়। ডিফল্টরূপে, রেডিস হ্যাশ কীগুলি কোনো টাইমআউটের সাথে যুক্ত থাকে না যাকে অ-উদ্বায়ী বলা হয়। যেমন আলোচনা করা হয়েছে, EXPIRE কমান্ডটি Redis হ্যাশে একটি টাইমআউট মান সেট করতে ব্যবহৃত হয়। সাধারণত, টাইমআউট মান হিসাবে নির্দিষ্ট সময়ের পরে রেডিস ডেটা স্টোর থেকে হ্যাশ মুছে ফেলা হয়। উদাহরণগুলিতে দেখানো হয়েছে, EXPIRE কমান্ডটি শর্তের উপর ভিত্তি করে হ্যাশের মেয়াদ নির্ধারণ করতে XX, NX, GT এবং LT এর মত কিছু ঐচ্ছিক আর্গুমেন্ট গ্রহণ করে।