Redis XTRIM

Redis Xtrim



রেডিস স্ট্রীমের নিম্ন-স্তরের বিবরণ

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

রেডিস স্ট্রিমগুলি এন্ট্রিগুলির একটি তালিকা হিসাবে ডেটা সঞ্চয় করে যেখানে প্রতিটি এন্ট্রিতে কী-মান জোড়া থাকে। নিম্ন স্তরে, এই এন্ট্রিগুলি ম্যাক্রো-নোডগুলিতে প্যাক করা হয়, যেমনটি নীচে দেখানো হয়েছে।









এই নিবন্ধে, আমরা XTRIM কমান্ড ব্যবহার করে স্ট্রিম এন্ট্রি অপসারণের উপর ফোকাস করছি, এবং উপরে উল্লিখিত ধারণাটি অপসারণ অপারেশনের দক্ষতাকে ঘনিষ্ঠভাবে প্রভাবিত করে। সাধারণত, রেডিস স্ট্রিম এন্ট্রি অপসারণ খুব কার্যকর যদি এটি ম্যাক্রো-নোড স্তরে করা হয় তবে এন্ট্রি স্তরে নয়। এই প্রক্রিয়াটি XTRIM কমান্ডের সাথে প্রয়োগ করা হয়েছে যা আমরা নিম্নলিখিত বিভাগে আলোচনা করব।



XTRIM কমান্ড

XTRIM কমান্ডটি একটি প্রদত্ত থ্রেশহোল্ড মানের উপর ভিত্তি করে একটি স্ট্রিমের এন্ট্রি কাটাতে ব্যবহৃত হয়। থ্রেশহোল্ড প্রতি স্ট্রীমের সর্বাধিক সংখ্যক এন্ট্রি বা একটি পুরানো এন্ট্রি আইডি হতে পারে। XTRIM কমান্ড একটি কমান্ড আর্গুমেন্ট হিসাবে থ্রেশহোল্ডের ধরন গ্রহণ করে। XTRIM কমান্ডের সিনট্যাক্স নিম্নরূপ।





XTRIM stream_key MAXLEN | MINID [ = | ~ ] থ্রেশহোল্ড মান [ সীমা গণনা ]

স্ট্রিম_কী : রেডিস স্রোতের চাবিকাঠি।

ম্যাক্সলেন : এন্ট্রি ছাঁটাই করার পর স্ট্রিমের সর্বোচ্চ দৈর্ঘ্য। সমস্ত এন্ট্রিগুলি সরানো হবে যা স্ট্রিমের দৈর্ঘ্য অতিক্রম করে, যা প্রান্তিক মান দ্বারা নির্দিষ্ট করা হয়৷ এই যুক্তি একটি ধনাত্মক পূর্ণসংখ্যা.

MINID : ন্যূনতম স্ট্রিম আইডি যা এন্ট্রিগুলি ছাঁটাই করার পরে থাকা উচিত৷ নির্দিষ্ট থ্রেশহোল্ডের চেয়ে কম আইডি আছে এমন সমস্ত এন্ট্রি মুছে ফেলা হবে। যখনই আপনি এই প্যারামিটারটি নির্দিষ্ট করেন, থ্রেশহোল্ড একটি স্ট্রিম আইডি হয়ে যায়।

= অপারেটর : নির্দিষ্ট করা হলে, থ্রেশহোল্ড মানের উপর ভিত্তি করে সঠিক ছাঁটাই করা হবে।

~ অপারেটর : নির্দিষ্ট করা হলে, থ্রেশহোল্ড মান এবং ম্যাক্রো-নোডের আকারের উপর ভিত্তি করে প্রায় সঠিক ছাঁটাই করা হবে।

থ্রেশহোল্ড মান : MAXLEN বা MINID যুক্তির উপর ভিত্তি করে প্রান্তিক মান।

সীমা গণনা : সর্বোচ্চ সংখ্যক এন্ট্রি অপসারণ করতে হবে।

কেস 01 ব্যবহার করুন - সর্বাধিক দৈর্ঘ্যের উপর ভিত্তি করে স্ট্রিম এন্ট্রিগুলি সরানো হচ্ছে

ধরা যাক যে একটি পর্যটন সংস্থা পর্যটকদের তথ্য ট্র্যাক রাখতে একটি রেডিস স্টোর বজায় রাখে। রেডিস স্ট্রিম ডেটা স্ট্রাকচার প্রতিটি পর্যটকের তথ্যকে মূল-মূল্যের জোড়া হিসাবে সংরক্ষণ করতে ব্যবহার করা হয়েছে। সময়ের সাথে সাথে, প্রবাহটি বেড়েছে, এবং তারা শুধুমাত্র সর্বশেষ 1000টি এন্ট্রি রাখার পরিকল্পনা করছে৷ তাই তারা চিহ্নিত করেছে যে কোনো সময়ে স্রোতের সর্বোচ্চ দৈর্ঘ্য 1000 হওয়া উচিত। এটি অর্জনের জন্য XTRIM কমান্ড ব্যবহার করা হয়েছে।

প্রদর্শনের উদ্দেশ্যে, প্রথমে, আমরা নিম্নরূপ 10টি এন্ট্রি সহ একটি স্ট্রীম তৈরি করব। XADD কমান্ডটি সন্নিবেশ সঞ্চালনের জন্য ব্যবহার করা হয়েছে।

xadd touristinfo * নাম জ্যাক দেশ ইতালি familymems 5
xadd touristinfo * নাম হ্যারি কান্ট্রি ইউএসএ ফ্যামিলিমেমস দুই
xadd touristinfo * নাম নিকোমিতা দেশ জাপান পরিবারের সদস্য 3
xadd touristinfo * নাম জাকারিয়া দেশ ভারত পরিবারের সদস্য দুই
xadd touristinfo * নাম রেডমন্ড কান্ট্রি ব্রাজিল ফ্যামিলি মেমস 6
xadd touristinfo * নাম পাওয়া দেশ জাপান familymems 3
xadd touristinfo * নাম মেরিজন কান্ট্রি ইউএসএ ফ্যামিলিমেমস দুই
xadd touristinfo * নাম লিজা কান্ট্রি ইতালি ফ্যামিলিমেমস 5
xadd touristinfo * নাম নিমশিকা দেশ জাপান পরিবারের সদস্য 3
xadd touristinfo * নাম নিশা দেশ ইতালি familymems 5

আসুন XRANGE কমান্ডটি ব্যবহার করে স্ট্রীম ট্যুরিস্টিনফো নিচের মত করে পরিদর্শন করি।

xrange touristinfo - +

আউটপুট:

প্রত্যাশিত হিসাবে, এই কমান্ড দ্বারা 10টি স্ট্রিম এন্ট্রি প্রদর্শিত হয়েছে।

প্রদর্শনের উদ্দেশ্যে, আমরা স্ট্রীমটি ছাঁটাই করব যেখানে এর সর্বোচ্চ দৈর্ঘ্য হবে 5।

এক্সট্রিম ট্যুরিস্টিনফো ম্যাক্সলেন 5

আসুন XRANGE কমান্ড দিয়ে আবার স্ট্রীম এন্ট্রিগুলি পরিদর্শন করি।

প্রত্যাশিত হিসাবে, স্ট্রীম থেকে পাঁচটি এন্ট্রি উচ্ছেদ করা হয়েছে এবং এর দৈর্ঘ্য 5।

কেস 02 ব্যবহার করুন - স্ট্রিম আইডিগুলির উপর ভিত্তি করে স্ট্রিম এন্ট্রিগুলি সরানো হচ্ছে

আসুন একটি উদাহরণ নেওয়া যাক যেখানে একটি আবহাওয়া সংস্থা রেডিস স্ট্রীম ব্যবহার করে একটি প্রদত্ত অবস্থানের আবহাওয়ার তথ্য ট্র্যাক করে। এখন, তারা পুরানো এন্ট্রিগুলি মুছে ফেলতে চায় যা আর প্রয়োজন নেই। আমরা MINID কৌশল ব্যবহার করে XTRIM কমান্ড ব্যবহার করতে পারি, যেমনটি নীচে দেখানো হয়েছে।

প্রথমে, আমরা ওয়েদারইনফো নামে একটি স্ট্রীম তৈরি করব এবং এতে নিম্নরূপ 5টি এন্ট্রি যোগ করব।

xadd আবহাওয়ার তথ্য * তাপমাত্রা 10 আর্দ্রতা পঞ্চাশ
xadd আবহাওয়ার তথ্য * তাপমাত্রা বিশ আর্দ্রতা 70
xadd আবহাওয়ার তথ্য * তাপমাত্রা 12 আর্দ্রতা 65
xadd আবহাওয়ার তথ্য * তাপমাত্রা পনের আর্দ্রতা ৮৮
xadd আবহাওয়ার তথ্য * তাপমাত্রা 18 আর্দ্রতা চার পাঁচ

আউটপুট:

নির্দিষ্ট থ্রেশহোল্ড মানের থেকে কম আইডি আছে এমন এন্ট্রিগুলি সরাতে XTRIM কমান্ডটি ব্যবহার করা যাক।

xtrim আবহাওয়ার তথ্য MINID 1660485503248 - 0

নির্দিষ্ট করা ন্যূনতম আইডি তৃতীয় এন্ট্রির সাথে যুক্ত। সুতরাং, তৃতীয় এন্ট্রির পরে যে এন্ট্রিগুলি নিম্ন আইডি রয়েছে তা মুছে ফেলা হবে।

আউটপুট:

যেহেতু আমরা = বা ~ আর্গুমেন্টগুলি স্পষ্টভাবে উল্লেখ করিনি, তাই কমান্ডটি ডিফল্টরূপে = অপারেটর ব্যবহার করে। অতএব, উভয় ব্যবহারের ক্ষেত্রেই সঠিক ছাঁটাই করা হয়েছে। আপনি যদি স্পষ্টভাবে ~ অপারেটর নির্দিষ্ট করে থাকেন, তাহলে প্রায় সঠিক ট্রিমিং করা হবে, যেমনটি নিচে দেখানো হয়েছে।

উপরের চিত্রে দেখানো হয়েছে, XTRIM কমান্ডটি ~ অপারেটরের সাথে ব্যবহার করা হয়েছে। আমরা কমান্ডকে 100-এর দৈর্ঘ্য অতিক্রমকারী সমস্ত এন্ট্রিগুলি সরাতে বলি৷ যেহেতু আমরা XTRIM কমান্ডকে একটি সঠিক ট্রিমিং করতে বাধ্য করি না, তাই এটি ট্রিমিং অপারেশনের দক্ষতার উপর ফোকাস করবে৷ সুতরাং, এটি একই ম্যাক্রো-নোডের অন্তর্গত অবিলম্বে এন্ট্রিগুলিকে সরিয়ে দেবে না। এটি একই ম্যাক্রো-নোডের পরবর্তী তিনটি এন্ট্রি রাখবে এবং সেগুলির পরে সমস্ত ম্যাক্রো-নোডগুলি সরিয়ে দেবে। এটি সঠিক ট্রিমিং পদ্ধতির তুলনায় যথেষ্ট পরিমাণে পারফরম্যান্সের উন্নতি দেয়, যা কমান্ডকে অতিরিক্ত প্রচেষ্টা করতে বাধ্য করে। একই পদ্ধতি সঞ্চালিত হয় যখন থ্রেশহোল্ড এন্ট্রি আইডির উপর ভিত্তি করে।

LIMIT আর্গুমেন্ট নির্দিষ্ট স্ট্রীম থেকে বহিষ্কৃত এন্ট্রির সংখ্যাকে সীমিত করে, যা একটু বেশি কর্মক্ষমতা উন্নতি লাভ করতে ব্যবহার করা যেতে পারে।

উপসংহার

সংক্ষেপে, XTRIM কমান্ডটি থ্রেশহোল্ড মানের উপর ভিত্তি করে স্ট্রিম এন্ট্রিগুলি সরাতে ব্যবহৃত হয়। MAXLEN এবং MINID কমান্ড আর্গুমেন্ট ব্যবহার করে নির্দিষ্ট করা প্রসঙ্গের সাথে থ্রেশহোল্ড মানটির ধরন পরিবর্তন করা যেতে পারে। যেমন আলোচনা করা হয়েছে, ছাঁটাই দুটি উপায়ে করা যেতে পারে যেখানে ট্রিমিং অপারেশন থ্রেশহোল্ডকে একটি সঠিক বা আনুমানিক সীমা হিসাবে বিবেচনা করবে। ডিফল্টরূপে, কমান্ডটি = অপারেটর ব্যবহার করে যা সঠিক ছাঁটাইয়ের জন্য ব্যবহৃত হয়। ~ অপারেটরের সাথে, আপনি উপরের বিভাগে উল্লিখিত হিসাবে একটি আনুমানিক ছাঁটাই করতে পারেন। সামগ্রিকভাবে, আনুমানিক ট্রিমিং পদ্ধতি এবং LIMIT যুক্তি আপনাকে XTRIM কমান্ডের সাথে একটি উল্লেখযোগ্য কর্মক্ষমতা লাভ করতে সাহায্য করে।