এই টিউটোরিয়ালে, আমরা শিখব কিভাবে জেডিস লাইব্রেরি ব্যবহার করে একটি সেট ভ্যালুতে CRUD অপারেশন করা যায়।
জেডিস লাইব্রেরি
জেডিস রেডিস ডেটাস্টোরের জন্য একটি জাভা ক্লায়েন্ট লাইব্রেরি। এটি ছোট এবং খুব সহজে ব্যবহারযোগ্য, এবং রেডিস ২.৮.x, ৩.x.x এবং এর উপরের ভার্সনদের সাথে পুরোপুরি কম্প্যাটিবল। জেডিস লাইব্রেরি সম্পর্কে আরও জানতে এখানে দেখুন।
সেট ভ্যালু
সেট হল অনঅর্ডার্ড ইউনিক এলিমেন্টের একটি কালেকশন। রেডিসে, সেটগুলো একটি মান হিসেবে সংরক্ষণ করা যায় এবং রেডিস কমান্ডগুলি ব্যবহার করে রেডিস ডেটাবেসে সংরক্ষিত সেট মান স্টোর, পরিচালনা ও রিট্রিভ করা যায়। সেট কমান্ডসমূহ সম্পর্কে আরও জানতে এখানে দেখুন।
প্রজেক্ট সেটআপ
আপনার পছন্দের IDE-এ একটি সিম্পল মেভেন প্রজেক্ট তৈরি করুন এবং নিচে উল্লেখিত ডিপেন্ডেন্সি আপনার pom.xml ফাইলে যোগ করুন।
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency>
জেডিস লাইব্রেরির লেটেস্ট ভার্সনের জন্য এই পেজ চেক করুন।
রেডিস ইনস্টলেশন
আপনাকে রেডিসের লেটেস্ট ভার্সন ইনস্টল করতে হবে। রেডিস ইনস্টলেশন সম্পর্কে আরও জানতে এই পেজ চেক করুন।
জেডিস কানেকশন
Jedis (redis.clients.jedis.Jedis) ক্লাসের একটি অবজেক্ট তৈরি করুন আপনার জাভা কোডকে রেডিসের সাথে কানেক্ট করার জন্য।
Jedis jedis = new Jedis();
যদি আপনি আপনার লোকাল মেশিনে ডিফল্ট পোর্ট (৬৩৭৯)-এ একটি রেডিস সার্ভিস চালু করে থাকেন, তবে ডিফল্ট কনস্ট্রাক্টর ঠিকঠাক কাজ করবে। অন্যথায় আপনাকে কনস্ট্রাক্টরে সঠিক হোস্ট ইউআরএল এবং পোর্ট নম্বর আর্গুমেন্ট হিসেবে পাস করতে হবে।
তैयاری ও যোগ করুন
sadd মেথড সেট মানে এক বা একাধিক এলিমেন্ট ইনসার্ট করে। যদি সেট মান অস্তিত্বে না থাকে, তবে এটি ইনসারশন অপারেশন করার আগে খালি সেট মান ধারণকারী একটি কী তৈরি করে।
/* নতুন সেট <set-1> তৈরি করুন এবং স্ট্রিং মান a, b, c, d ইনসার্ট করুন */ jedis.sadd("set-1", "a", "b", "c", "d");
/* নতুন সেট <set-2> তৈরি করুন এবং স্ট্রিং মান 1, 2 ইনসার্ট করুন */ jedis.sadd("set-2".getBytes(),"1".getBytes(),"2".getBytes());
সদস্যতা যাচাই করুন
sismember মেথড যাচাই করতে ব্যবহৃত হয়, নির্দিষ্ট এলিমেন্টটি সেটের সদস্য কিনা।
/* ab <set-1>-এর সদস্য কিনা যাচাই করুন */ jedis.sismember("set-1", "ab");
/* 1 <set-2>-এর সদস্য কিনা যাচাই করুন */ jedis.sismember("set-2".getBytes(), "1".getBytes());
রিমুভ ও রিটার্ন করুন
spop মেথড একটি কীতে সংরক্ষিত সেট মান থেকে এক বা একাধিক র্যান্ডম এলিমেন্ট রিমুভ ও রিটার্ন করতে ব্যবহৃত হয়।
/* <set-1>- থেকে একক র্যান্ডম এলিমেন্ট রিমুভ ও রিটার্ন করুন */ jedis.spop("set-1");
/* <set-1>- থেকে ৩টি র্যান্ডম এলিমেন্ট রিমুভ ও রিটার্ন করুন */ jedis.spop("set-1", 3);
সাইজ
scard মেথড একটি কীতে সংরক্ষিত সেট মান আকার পाने জন্য ব্যবহৃত হয়।
/* <set-1>-এর আকার রিটার্ন করুন */ jedis.scard("set-1");
ডিলিট করুন
srem মেথড সেট মান থেকে এক বা একাধিক এলিমেন্ট ডিলিট করতে ব্যবহৃত হয়।
/* <set-1>- থেকে a, b, c এলিমেন্ট রিমুভ করুন */ jedis.srem("set-1", "a", "b", "c");
/* <set-1>- থেকে 2, 3 এলিমেন্ট রিমুভ করুন */ jedis.srem("set-1".getBytes(), "1".getBytes(), "b".getBytes());
সব পান
smembers মেথড একটি সেট মানের সব এলিমেন্ট পाने জন্য ব্যবহৃত হয়।
/* <set-1>- থেকে সব এলিমেন্ট রিটার্ন করুন */ jedis.smembers("set-1");
ইউনিয়ন
সেট মানের ওপর ইউনিয়ন অপারেশন করার দুটি মেথড রয়েছে। সেগুলো নিম্নরূপ:
- sunion: দুই বা একাধিক সেটের ওপর ইউনিয়ন অপারেশন করে এবং ফলাফল অ্যারে হিসেবে রিটার্ন করে।
/* <set-1>, <set-2>-এর ইউনিয়ন পান */ jedis.sunion("set-1", "set-2"); - sunionstore: দুই বা একাধিক সেটের ওপর ইউনিয়ন অপারেশন করে এবং ফলাফল একটি নতুন সেট মানে রিটার্ন করে।
/* <set-1>, <set-2>-এর ইউনিয়ন গন্তব্য সেট <set-3>-এ পান */ jedis.sunionstore("set-3", "set-1", "set-2");
ইন্টারসেকশন
সেট মানের ওপর ইন্টারসেকশন অপারেশন করার দুটি মেথড রয়েছে। সেগুলো নিম্নরূপ:
- sinter: দুই বা একাধিক সেটের ওপর ইন্টারসেকশন অপারেশন করে এবং ফলাফল অ্যারে হিসেবে রিটার্ন করে।
/* <set-1>, <set-2>-এর ইন্টারসেকশন পান */ jedis.sinter("set-1", "set-2"); - sinterstore: দুই বা একাধিক সেটের ওপর ইন্টারসেকশন করে এবং ফলাফল একটি নতুন সেট মানে রিটার্ন করে।
/* <set-1>, <set-2>-এর ইন্টারসেকশন গন্তব্য সেট <set-3>-এ পান */ jedis.sinterstore("set-3", "set-1", "set-2");
ডিফারেন্স
সেট মানের ওপর ডিফারেন্স অপারেশন করার দুটি মেথড রয়েছে। সেগুলো নিম্নরূপ:
- sdiff: দুই বা একাধিক সেটের ওপর ডিফারেন্স করে এবং ফলাফল অ্যারে হিসেবে রিটার্ন করে।
/* <set-1>, <set-2>-এর ডিফারেন্স পান */ jedis.sdiff("set-1", "set-2"); - sdiffstore: দুই বা একাধিক সেটের ওপর ডিফারেন্স করে এবং ফলাফল একটি নতুন সেট মানে রিটার্ন করে।
/* <set-1>, <set-2>-এর ডিফারেন্স গন্তব্য সেট <set-3>-এ পান */ jedis.sdiffstore("set-3", "set-1", "set-2");
রেফারেন্স:
- সেট কমান্ড ডক্স
জেডিস লাইব্রেরি ব্যবহার করে একটি সেট ভ্যালুতে CRUD অপারেশন করার প্রক্রিয়া এতে সম্পন্ন। যদি আপনার ভালো লাগে, তবে মন্তব্য অংশে আপনার মতামত শেয়ার করুন এবং অন্যদেরও শেয়ার করুন।