মূলা LSET

Mula Lset



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

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









তালিকার উপাদানগুলি LSET কমান্ডের সাহায্যে যেকোন প্রদত্ত সূচকে সেট করা যেতে পারে, যা নিম্নলিখিত বিভাগে বর্ণিত হয়েছে।



LSET কমান্ড

LSET কমান্ড নির্দিষ্ট কী-এ সংরক্ষিত Redis তালিকার প্রদত্ত সূচকে একটি উপাদান সেট করে। এটিতে নিম্নলিখিত সহজ সিনট্যাক্স রয়েছে:





LSET list_key সূচক উপাদান

তালিকা_কী : রেডিস তালিকার চাবিকাঠি।

সূচক : সূচী যেখানে আপনাকে একটি উপাদান সেট করতে হবে।



উপাদান : নির্দিষ্ট সূচকে সেট করা স্ট্রিং উপাদান।

উপাদানটি সঠিকভাবে সেট করা থাকলে এই কমান্ডটি একটি সাধারণ স্ট্রিং 'ঠিক আছে' প্রদান করে। যখনই এটি সীমার বাইরে একটি সূচকের সম্মুখীন হয়, LSET কমান্ড একটি ত্রুটি ফেরত দেয়।

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

কেস ব্যবহার করুন - সোশ্যাল মিডিয়া পোস্ট আপডেট করুন

আসুন একটি ইভেন্ট ধরে নিই যেখানে একটি কোম্পানি তার নিজস্ব সোশ্যাল মিডিয়া ওয়েবসাইট বজায় রাখে যেখানে হাজার হাজার ব্যবহারকারী সক্রিয়ভাবে পোস্ট এবং স্ট্যাটাস পোস্ট করে। তারা চিহ্নিত করেছে যে Redis তালিকাগুলি এই পোস্টগুলি এবং স্ট্যাটাসগুলি রাখার জন্য উপযুক্ত প্রার্থী যেখানে ঘন ঘন সন্নিবেশ ঘটে এবং Redis তালিকাগুলি ধ্রুবক সময়ে সন্নিবেশ সঞ্চালন করে৷

আসুন একটি প্রদত্ত ব্যবহারকারী আইডি 100-এর জন্য একটি Redis তালিকা তৈরি করি যা সেই নির্দিষ্ট ব্যবহারকারীর পোস্ট এবং স্থিতি বার্তাগুলি সংরক্ষণ করতে ব্যবহৃত হবে। আমরা ব্যবহারকারী আইডি 100-এর জন্য কিছু ডামি পোস্ট এবং স্ট্যাটাস বার্তা দিতে LPUSH কমান্ড ব্যবহার করব।

LPUSH social-media:user:100 '2022-08-01:শুরু করার জন্য চমৎকার দিন।'
LPUSH social-media:user:100 '2022-08-05: linuxhint-এ নতুন কাজ শুরু করেছে'
LPUSH social-media:user:100 '2022-08-06: গ্রেট পার্টি আজ'
LPUSH social-media:user:100 '2022-08-07:খারাপ দিন!!!'

আউটপুট

অনুমান করুন যে ব্যবহারকারী আইডি 100 সহ ব্যবহারকারী তার পুরানো পোস্টগুলির একটি আপডেট করবেন। ধরুন তিনি যে তৃতীয় পোস্টটি পোস্ট করেছেন তাতে কিছু সংশোধন প্রয়োজন। LSET কমান্ড সহজেই এটি অর্জন করতে পারে, যেমনটি নিম্নলিখিতটিতে দেখানো হয়েছে।

যেহেতু তৃতীয় উপাদানটি হেড থেকে সূচক 2 এ রয়েছে। আমরা নিম্নলিখিত হিসাবে এটি আপডেট করা হবে:

LSET social-media:user:100 2 'লিনাক্সহিন্টে লেখক হিসাবে নতুন ভূমিকা শুরু করেছেন'

আউটপুট

প্রত্যাশিত হিসাবে, কমান্ডটি সফলভাবে কার্যকর করা হয়েছিল, এবং দ্বিতীয় সূচকের উপাদানটি আপডেট করা হয়েছিল। আসুন নিম্নরূপ তালিকাটি পুনরায় পরীক্ষা করি:

আমরা লেজ থেকে সূচকটি নিম্নরূপ উল্লেখ করে একই কাজ করতে পারি:

LSET social-media:user:100 -2 'লিনাক্সহিন্টে লেখক হিসাবে নতুন ভূমিকা শুরু করেছেন'

প্রত্যাশিত হিসাবে, তৃতীয় উপাদানটি নতুন স্ট্রিং 'লিনাক্সহিন্টে চাকরি শুরু হয়েছে' এ সেট করা হয়েছে।

যদি আপনি একটি সূচক নির্দিষ্ট করেন যা পরিসীমার বাইরে, তাহলে এটি একটি ত্রুটি উত্থাপন করবে, যেমনটি নিম্নলিখিতটিতে দেখানো হয়েছে:

LSET social-media:user:100 6 'লিনাক্সহিন্টে চাকরি শুরু হয়েছে'

আউটপুট

উপসংহার

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