রেডিস GETEX

Redisa Getex



রেডিস হল একটি মূল-মূল্যের ডেটা স্টোর যা ইন-মেমরি ক্যাশে, ডাটাবেস, টাইম সিরিজ, স্ট্রিম ইঞ্জিন, বার্তা ব্রোকার, ইত্যাদি হিসাবে ব্যবহৃত হয়। যেহেতু রেডিস ডেটা স্টোর ডেটা ধারণ করার জন্য একটি সাধারণ কী-মূল্যের জোড়া বিন্যাস ব্যবহার করে, এটি খুব মেমরি। দক্ষ. উপরন্তু, O(1) এবং O(log(N)) এর মত কম সময়ের জটিলতার সাথে কোয়েরি করার গতি খুব বেশি। রেডিস কী বিভিন্ন ডেটা স্ট্রাকচার ধারণ করতে পারে, যেমন স্ট্রিং, সেট, হ্যাশ, সাজানো সেট এবং তালিকা।

সাধারণত, GET এবং SET কমান্ডগুলি একটি প্রদত্ত রেডিস কী-তে সংরক্ষিত স্ট্রিং-টাইপ মানগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে ব্যবহৃত হয়। এই দুটি কমান্ড ধ্রুবক সময়ের জটিলতার সাথে কাজ করে।







উপরন্তু, GETEX কমান্ড একটি প্রদত্ত কী এ সঞ্চিত স্ট্রিং মান পড়ার জন্য উপলব্ধ। কিন্তু এই কমান্ডটি একটি সমান্তরাল লেখার অপারেশনের সাথেও যুক্ত। এই গাইডটি GETEX কমান্ড সিনট্যাক্স, এর বিকল্পগুলি এবং ব্যবহারের ক্ষেত্রে ফোকাস করবে।



একটি Redis কী এর TTL

টাইম টু লাইভ (TTL) মান হল প্রদত্ত ডেটার মেয়াদ শেষ হওয়ার সময়। সাধারণত, একটি TTL ডাটাবেস সারিগুলির সাথে যুক্ত হতে পারে। একটি সময়সীমা রেডিস কী দিয়েও সেট করা যেতে পারে। সুতরাং, একটি রেডিস ক্লায়েন্ট অবশিষ্ট সেকেন্ড পরীক্ষা করতে পারে যে একটি প্রদত্ত কী ডেটা স্টোরে উপলব্ধ হবে। রেডিস একটি প্রদত্ত কীটির লাইভ ভ্যালুর সময় পরীক্ষা করার জন্য একটি TTL কমান্ড অফার করে। কোনো নির্দিষ্ট কী-এর সাথে কোনো টাইমআউট যুক্ত না হলে, TTL কমান্ড -1 প্রদান করে। প্রদত্ত কী-এর অবশিষ্ট সময় পরীক্ষা করতে আমরা পরবর্তী বিভাগে TTL কমান্ড ব্যবহার করব।



GETEX কমান্ড

যেমন হাইলাইট করা হয়েছে, GETEX কমান্ডটি GET কমান্ডের অনুরূপ, এটি ব্যতীত এটি নির্দিষ্ট কীটির জন্য একটি মেয়াদ শেষ হওয়ার সময় সেট করতে ব্যবহার করা যেতে পারে। উপরন্তু, একটি কমান্ড বিকল্প একটি প্রদত্ত কী থেকে একটি টাইমআউট মান মুছে ফেলতে পারে। GETEX কমান্ড সিনট্যাক্স নিম্নরূপ:





GETEX কী [ EX সময় শেষ_সেকেন্ডে | PX টাইমআউট_ইন_মিলিসেকেন্ড | EXAT টাইমআউট_ইন_ইউনিক্স-টাইম-সেকেন্ড | PXAT টাইমআউট_ইন_ইউনিক্স-টাইম-মিলিসেকেন্ড | টিকে থাকুন ]

চাবি: এটি একটি স্ট্রিং মান নির্দেশ করে যে কী.

নিম্নলিখিত ঐচ্ছিক আর্গুমেন্টগুলি সেকেন্ড বা মিলিসেকেন্ডে একটি টাইমআউট সেট করতে ব্যবহার করা যেতে পারে।



EX: এটি একটি প্রদত্ত কীটির জন্য সেকেন্ডে মেয়াদ শেষ হওয়ার সময় সেট করবে।

PX: মূল টাইমআউট মান মিলিসেকেন্ডে সেট করা হবে।

উপরন্তু, আমরা নিম্নলিখিত কমান্ড বিকল্পগুলি ব্যবহার করে সেকেন্ড বা মিলিসেকেন্ডে একটি UNIX টাইমস্ট্যাম্প মান নির্দিষ্ট করতে পারি EXAT এবং PXAT :

EXAT: মেয়াদ শেষ হওয়ার সময়টি UNIX টাইমস্ট্যাম্প বিন্যাসে সেট করা হবে এবং টাইমস্ট্যাম্প সেকেন্ডে হবে।

PXAT: একটি প্রদত্ত Redis কী-এর সময়সীমা মিলিসেকেন্ডে একটি UNIX টাইমস্ট্যাম্প হিসাবে সেট করা হবে।

চালিয়ে যান: এটি নির্দিষ্ট করে, আপনি একটি নির্দিষ্ট কী-এর সাথে যুক্ত লাইভ ভ্যালুর সময়কে সরিয়ে দিতে পারেন।

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

নিম্নলিখিত বিভাগে, আমরা GETEX কমান্ডের ব্যবহারিক ব্যবহার কভার করব।

কেস ব্যবহার করুন - পাসওয়ার্ড পুনরুদ্ধার/ওটিপিগুলির জন্য অস্থায়ী রিসেট লিঙ্ক বা পিন কোড জেনারেশন

একটি ওয়েব হোস্টিং কোম্পানি নিবন্ধিত ব্যবহারকারীদের জন্য একটি পাসওয়ার্ড পুনরুদ্ধারের বৈশিষ্ট্য প্রদান করছে। নিরাপত্তা ব্যবস্থা হিসাবে, তারা ব্যবহারকারীকে একটি নতুন URL লিঙ্ক পাঠায়, যার মেয়াদ 5 মিনিটের মধ্যে শেষ হয়ে যাবে। কোম্পানিটি দীর্ঘদিন ধরে রেডিস ডেটা স্টোর ব্যবহার করে আসছে এবং একটি প্রদত্ত ব্যবহারকারীর জন্য লাইভ ভ্যালুর সময় নির্ধারণ করতে GETEX কমান্ড ব্যবহার করে।

ধরা যাক user_id 1000 সহ একজন ব্যবহারকারী একটি পাসওয়ার্ড পুনরুদ্ধারের অনুরোধ করে। সুতরাং, পুনরুদ্ধার URL কী এ সংরক্ষণ করা যেতে পারে RecoveryURL:UserID:1000 . আমরা নিম্নরূপ পুনরুদ্ধার URL সংরক্ষণ করতে SET কমান্ড ব্যবহার করতে পারি:

সেট RecoveryURL:UserID: 1000 'https://abc.com/recovery/userid=1000,key=sdfiuoe3290e9rjs'

স্ট্রিং ইউআরএলটি কী-তে সঠিকভাবে সংরক্ষিত আছে কিনা তা পরীক্ষা করা যাক RecoveryURL:UserID:1000. আমরা GETEX কমান্ডটি নিম্নরূপ ব্যবহার করতে পারি:

getex RecoveryURL:UserID: 1000

পূর্ববর্তী কমান্ডের আউটপুট নিম্নলিখিত দেখানো হয়েছে:

আমরা যদি GETEX কমান্ডের পরিবর্তে GET কমান্ড ব্যবহার করি, তাহলে আউটপুট একই হবে।

এই কীটির সাথে মেয়াদ শেষ হওয়ার সময় যুক্ত কিনা তা পরীক্ষা করতে TTL কমান্ডটি ব্যবহার করা যাক।

Ttl RecoveryURL:UserID: 1000

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

এই উদাহরণ অনুসারে, হোস্টিং কোম্পানিকে পুনরুদ্ধার URL এর জন্য 5 মিনিটের সময়সীমা সেট করতে হবে। সুতরাং, আমরা ব্যবহার করা হবে EX কমান্ড বিকল্প। যেহেতু 5 মিনিট 300 সেকেন্ড, আমরা GETEX কমান্ডটি নিম্নরূপ তৈরি করতে পারি:

getex RecoveryURL:UserID: 1000 EX 500

ডাটা স্টোরে কীটি বিদ্যমান থাকবে তা বাকী সময় পরিদর্শন করতে TTL কমান্ডটি কয়েকবার চালাই।

প্রত্যাশিত হিসাবে, সময় কমছে, এবং অবশেষে, RecoveryURL:UserID:1000 কী সরানো হবে। 5 মিনিটের পরে নিম্নলিখিত আউটপুট:

-2 কমান্ড দ্বারা ফিরে এসেছে, যার মানে কী মেয়াদ শেষ হয়ে গেছে এবং ডেটা স্টোর থেকে মুছে ফেলা হয়েছে।

কখনও কখনও, আপনাকে একটি প্রদত্ত কী এর সাথে যুক্ত টাইমআউট মান অপসারণ করতে হতে পারে। সুতরাং, PERSIST কমান্ড বিকল্পটি একটি নির্দিষ্ট কী সম্পর্কিত একটি TTL মান মুছে ফেলার জন্য ব্যবহার করা যেতে পারে।

আসুন আরেকটি নমুনা কী তৈরি করি এবং এটিতে একটি স্ট্রিং মান নির্ধারণ করি। এই ক্ষেত্রে, আমরা পাস করে মিলিসেকেন্ডে TTL মান নির্দিষ্ট করব পিএক্স বিকল্প

সেট KeytoTestPersist 'এটি 60 সেকেন্ডের মধ্যে মেয়াদ শেষ হয়ে যাবে' পিএক্স 50000

পরবর্তী, আমরা নিম্নলিখিত হিসাবে অবশিষ্ট সময় পরীক্ষা করা হবে:

প্রত্যাশিত হিসাবে, টিটিএল কমছে। PERSIST অপশন সহ GETEX কমান্ডকে নিম্নরূপ কল করি:

getex KeytoTestPersist অব্যাহত থাকে

আদর্শভাবে, এটি এই কীটির সাথে যুক্ত TTL সরিয়ে দেবে। আসুন কীটির জন্য TTL পরিদর্শন করি KeytoTestPersist.

TTL কমান্ড -1 ফেরত দিয়েছে, যার মানে কোন TTL কীটির সাথে যুক্ত নয় KeytoTestPersist.

একইভাবে, দ GETEX UNIX টাইমস্ট্যাম্পে কীগুলির মেয়াদ শেষ হওয়ার সময় সেট করতে কমান্ড ব্যবহার করা যেতে পারে।

উপসংহার

সংক্ষেপে, Redis GETEX কমান্ডটি GET কমান্ডের মতো একটি প্রদত্ত কী-তে সংরক্ষিত স্ট্রিং মানগুলি পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে। GETEX কমান্ডের সাথে একমাত্র পার্থক্য হল এটি একটি প্রদত্ত কী-এর জন্য মেয়াদ শেষ হওয়ার সময় নির্ধারণ এবং অপসারণ সমর্থন করে। এটি সেকেন্ড, মিলিসেকেন্ড এবং UNIX-টাইমস্ট্যাম্প সেকেন্ড বা মিলিসেকেন্ডে মেয়াদ শেষ হওয়ার সময় নির্দিষ্ট করার জন্য বেশ কয়েকটি ঐচ্ছিক আর্গুমেন্ট সমর্থন করে। যেমন আলোচনা করা হয়েছে, কমান্ডটি একটি প্রদত্ত কী-এর জন্য সংশ্লিষ্ট TTL অপসারণের জন্য PERSIST বিকল্প প্রদান করে। সামগ্রিকভাবে, GETEX কমান্ড ধ্রুবক সময়ের জটিলতার সাথে কাজ করে।