এই টিউটোরিয়ালে, আমরা শিখব কিভাবে জেডিস লাইব্রেরি ব্যবহার করে একটি হ্যাশ ভ্যালুতে 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();
যদি আপনি আপনার লোকাল মেশিনে ডিফল্ট পোর্ট (৬৩৭৯)-এ একটি রেডিস সার্ভিস চালু করে থাকেন, তবে ডিফল্ট কনস্ট্রাক্টর ঠিকঠাক কাজ করবে। অন্যথায় আপনাকে কনস্ট্রাক্টরে সঠিক হোস্ট ইউআরএল এবং পোর্ট নম্বর আর্গুমেন্ট হিসেবে পাস করতে হবে।
ফিল্ডের মান তৈরি ও সেট করুন
হ্যাশ মানের ভেতর ফিল্ডের সাথে যুক্ত মান সেট করার তিনটি মেথড রয়েছে। সেগুলো নিম্নরূপ:
- hset: হ্যাশ মানে নির্দিষ্ট ফিল্ডে নির্দিষ্ট মান সেট করে। যদি ফিল্ডটি ইতিমধ্যে অস্তিত্বে থাকে, তবে এর মান ওভাররাইট করা হয়। যদি কীটি অস্তিত্বে না থাকে, তবে সেট অপারেশন করার আগে হ্যাশ মান ধারণকারী একটি নতুন কী তৈরি করা হয়।
/* <hash-1>-এ name ফিল্ড ইনসার্ট করুন */ jedis.hset("hash-1", "name", "john"); /* <hash-2>-এ name ফিল্ড ইনসার্ট করুন */ jedis.hset("hash-2".getBytes(), "name".getBytes(), "john".getBytes()); - hsetnx: হ্যাশ মানে নির্দিষ্ট ফিল্ডে নির্দিষ্ট মান সেট করে, শুধু যদি ফিল্ডটি অস্তিত্বে না থাকে। যদি ফিল্ডটি ইতিমধ্যে অস্তিত্বে থাকে, তবে এই অপারেশনের কোনো প্রভাব নেই। যদি কীটি অস্তিত্বে না থাকে, তবে সেট অপারেশন করার আগে হ্যাশ মান ধারণকারী একটি নতুন কী তৈরি করা হয়।
/* <hash-1>-এ name ফিল্ড ইনসার্ট করুন */ jedis.hsetnx("hash-1", "name", "john"); /* <hash-2>-এ age ফিল্ড ইনসার্ট করুন */ jedis.hsetnx("hash-2".getBytes(), "age".getBytes(), "23".getBytes()); - hmset: হ্যাশ মানে নির্দিষ্ট মানগুলো তাদের সনাক্ত ফিল্ডগুলোর সাথে (বহু ফিল্ড/ভ্যালু পেয়ার) সেট করে। যদি নির্দিষ্ট ফিল্ডগুলোর যেকোনোটি ইতিমধ্যে অস্তিত্বে থাকে, তবে তার মান ওভাররাইট করা হবে। যদি কীটি অস্তিত্বে না থাকে, তবে সেট অপারেশন করার আগে হ্যাশ মান ধারণকারী একটি নতুন কী তৈরি করা হয়।
/* <hash-1>-এ name এবং age ফিল্ড ইনসার্ট করুন */ Map<String,String> map = new HashMap<String, String>(); map.put("name","john"); map.put("age","23"); jedis.hmset("hash-1", map);
ফিল্ডের মান পান
হ্যাশ মানের ভেতর ফিল্ডের সাথে যুক্ত মান পাওয়ার দুটি মেথড রয়েছে। সেগুলো নিম্নরূপ:
- hget: হ্যাশ মানের ভেতর একটি একক ফিল্ডের সাথে যুক্ত মান রিটার্ন করে।
/* <hash-1>-এ name ফিল্ডের মান পান */ jedis.hget("hash-1", "name"); - hmget: হ্যাশ মানের ভেতর এক বা একাধিক ফিল্ডের সাথে যুক্ত মান রিটার্ন করে।
/* <hash-1>-এ name এবং age ফিল্ডের মান পান */ jedis.hmget("hash-1", "name", "age");
সাইজ
hlen মেথড একটি কীতে সংরক্ষিত হ্যাশ মানের ফিল্ডের সংখ্যা পाने জন্য ব্যবহৃত হয়।
/* <hash-1>-এ ফিল্ডের সংখ্যা রিটার্ন করুন */ jedis.hlen("hash-1");
ডিলিট করুন
hdel মেথড একটি কীতে সংরক্ষিত হ্যাশ মানের থেকে এক বা একাধিক ফিল্ড ডিলিট করতে ব্যবহৃত হয়।
/* <hash-1>- থেকে name এবং age ফিল্ড রিমুভ করুন */ jedis.hdel("hash-1", "name", "age");
/* <hash-2>- থেকে name এবং age ফিল্ড রিমুভ করুন */ jedis.hdel("hash-2".getBytes(),"name".getBytes(),"age".getBytes());
ফিল্ডের অস্তিত্ব যাচাই করুন
hexists মেথড যাচাই করতে ব্যবহৃত হয়, নির্দিষ্ট ফিল্ডটি হ্যাশের সদস্য কিনা।
/* name <hash-1>-এর সদস্য কিনা যাচাই করুন */ jedis.hexists("hash-1", "name");
/* name <hash-2>-এর সদস্য কিনা যাচাই করুন */ jedis.hexists("hash-2".getBytes(),"name".getBytes());
সব পান
hgetall মেথড একটি কীতে সংরক্ষিত হ্যাশ মানের সব ফিল্ড এবং তাদের সংশ্লিষ্ট মান পाने জন্য ব্যবহৃত হয়।
/* <hash-1>- থেকে সব ফিল্ড এবং তার মান রিটার্ন করুন */ jedis.hgetAll("hash-1");
/* <hash-2>- থেকে সব ফিল্ড এবং তার মান রিটার্ন করুন */ jedis.hgetAll("hash-2".getBytes());
সব কী পান
hkeys মেথড একটি কীতে সংরক্ষিত হ্যাশ মানের সব ফিল্ডের নাম পाने জন্য ব্যবহৃত হয়।
/* <hash-1>- থেকে সব ফিল্ডের নাম রিটার্ন করুন */ jedis.hkeys("hash-1");
/* <hash-2>- থেকে সব ফিল্ডের নাম রিটার্ন করুন */ jedis.hkeys("hash-2".getBytes());
সব মান পান
hvals মেথড একটি কীতে সংরক্ষিত হ্যাশ মানের সব ফিল্ডের মান পाने জন্য ব্যবহৃত হয়।
/* <hash-1>- থেকে সব মান রিটার্ন করুন */ jedis.hvals("hash-1");
/* <hash-2>- থেকে সব মান রিটার্ন করুন */ jedis.hvals("hash-2".getBytes());
রেফারেন্স:
- হ্যাশ কমান্ড ডক্স
জেডিস লাইব্রেরি ব্যবহার করে একটি হ্যাশ ভ্যালুতে CRUD অপারেশন করার প্রক্রিয়া এতে সম্পন্ন। যদি আপনার ভালো লাগে, তবে মন্তব্য অংশে আপনার মতামত শেয়ার করুন এবং অন্যদেরও শেয়ার করুন।