কম্পিউটার

রেডিস ওএম স্প্রিং উপস্থাপন করা হচ্ছে

অবজেক্ট ম্যাপিং, এবং আরও অনেক কিছু, রেডিস এবং স্প্রিং এর জন্য

Redis OM স্প্রিং হল একটি নতুন ক্লায়েন্ট লাইব্রেরি যা আপনাকে আপনার ডোমেন মডেল করতে এবং আপনার স্প্রিং অ্যাপ্লিকেশনগুলিতে Redis-এ ডেটা বজায় রাখতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। লাইব্রেরিটি ওপেন সোর্স Redis এর সাথে কাজ করে কিন্তু RedisJSON এর সাথে ব্যবহার করার সময় অনেক অতিরিক্ত ইন্ডেক্সিং এবং কোয়েরি করার ক্ষমতা প্রদান করে।

রেডিস, এর মডিউলগুলির সাথে মিলিত, গ্রহের দ্রুততম ডেটা প্ল্যাটফর্মগুলির একটি তৈরি করে৷ তবে এর গতির সুবিধা নেওয়া সবসময় সহজ ছিল না। Redis OM স্প্রিং একটি আকর্ষক ডেভেলপার অভিজ্ঞতা প্রদান করে, এবং এই পোস্টে আমি আপনাকে দেখাব যে আপনি এটি দিয়ে কী তৈরি করতে পারেন৷

অনুপ্রেরণা

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

একইভাবে, এন্টারপ্রাইজ জাভা ডেভেলপমেন্টের জগতে, স্প্রিং, গত 18 বছরে, বড়, বৈশিষ্ট্য-সমৃদ্ধ অ্যাপ্লিকেশন নির্মাণের জটিলতাকে নিয়ন্ত্রণ করেছে। এই স্পেসে, রেডিসকে আশ্চর্যজনক স্প্রিং ডেটা রেডিস দ্বারা সমর্থিত করা হয়েছে, যা OSS রেডিসের সাথে ইন্টারঅ্যাক্ট করার জন্য নিম্ন-স্তরের এবং উচ্চ-স্তরের বিমূর্ততা প্রদান করে।

স্প্রিং ডেটা রেডিস ব্যবহার করার চ্যালেঞ্জগুলির মধ্যে একটি হল এটি রেডিস মডিউলগুলিকে সমর্থন করে না। এখানে Redis-এ, আমরা বেশ কিছু গেম-পরিবর্তনকারী Redis মডিউল তৈরি করি যা Redis কোর ডেটা স্ট্রাকচারকে সার্চ, JSON ইন্ডেক্সিং এবং কোয়েরি, গ্রাফ ডেটা, টাইম সিরিজ ডেটা এবং সার্ভার-সাইড কম্পিউটেশনের (Redis Gears) জন্য একটি সম্পূর্ণ কাঠামোকে সমৃদ্ধ করে। আমরা এই মডিউলগুলির সুবিধা নিতে এবং আরও বিস্তৃত ক্ষমতা প্রদান করতে Redis OM স্প্রিং তৈরি করেছি।

Redis OM Spring

ক্লায়েন্ট লাইব্রেরির Redis OM পরিবারের লক্ষ্য হল আপনার পছন্দের ভাষা/প্ল্যাটফর্মের জন্য উচ্চ-স্তরের বিমূর্ততা প্রদান করা। আমরা বর্তমানে Node.js, Python, .NET, এবং স্প্রিং সম্প্রদায়গুলি পূরণ করি৷ Redis OM স্প্রিং ডেভেলপারদের সহজে তাদের স্প্রিং বুট অ্যাপ্লিকেশনগুলিতে Redis এর শক্তি যোগ করতে দেয়৷

বিশেষত, রেডিস ওএম স্প্রিং আশ্চর্যজনক স্প্রিং ডেটা রেডিস (এসডিআর) ফ্রেমওয়ার্কের উপর নির্মিত একটি শক্তিশালী সংগ্রহস্থল এবং কাস্টম অবজেক্ট-ম্যাপিং বিমূর্ততা প্রদান করে।

বর্তমান প্রিভিউ রিলিজ স্প্রিং ডেটা রেডিস সমস্ত ক্ষমতা প্রদান করে, প্লাস:

  • জাভা থেকে JSON ম্যাপিং
  • উন্নত হ্যাশ ম্যাপিং
  • স্বয়ংক্রিয় অনুসন্ধান সূচক তৈরি
  • RediSearch দ্বারা সমর্থিত স্প্রিং ডেটা রিপোজিটরি

জাভা থেকে JSON ম্যাপিং

RedisJSON ব্যবহার করে Redis-এ সংরক্ষিত JSON নথিতে জাভা অবজেক্ট ম্যাপ করতে, আপনি

@Document
ব্যবহার করতে পারেন টীকা অন্যান্য স্প্রিং ডেটা সত্তা ম্যাপিং টীকাটির মতো, আপনি এটিকে ক্লাস ঘোষণায় যুক্ত করেন। উদাহরণস্বরূপ, কল্পনা করুন যে আপনি
Company
ধরনের অবজেক্ট ম্যাপ করতে চান . শুধু
@Document
যোগ করুন নীচে দেখানো হিসাবে:

আপনি লক্ষ্য করতে পারেন যে এই শ্রেণীর শরীরে বেশ কয়েকটি টীকা রয়েছে।

@Id
স্প্রিং ডেটা থেকে আসে এবং এটি
id
ঘোষণা করে Redis কী হিসাবে সম্পত্তি যা আমাদের JSON নথি সংরক্ষণ করবে।

তর্কাতীতভাবে লাইব্রেরির স্প্রিং ডেটা পরিবারের সবচেয়ে জনপ্রিয় বৈশিষ্ট্য হল ঘোষণামূলক ডেটা রিপোজিটরি। পরবর্তী দুটি টীকা আপনাকে JSON নথি সূচী করতে RediSearch ব্যবহার করতে দেয়। এটি

RedisDocumentRepository
এর মাধ্যমে প্রকাশ করা হয়েছে ইন্টারফেস:

আপনার POJO গুলির জন্য প্রাথমিক CRUD কার্যকারিতা/পৃষ্ঠা সংখ্যা এবং বাছাই করার জন্য আপনার যা দরকার তা হল খালি সংগ্রহস্থলের ঘোষণা৷

Redis OM স্প্রিং

@Indexed
দিয়ে টীকাযুক্ত POJO ক্ষেত্র ব্যবহার করে অথবা
@Searchable
সূচক স্কিমা তৈরি করতে।
Company
ক্ষেত্রে POJO, আমাদের কাছে "অনুসন্ধানযোগ্য" হিসাবে টীকাযুক্ত একটি নামের সম্পত্তি রয়েছে, যার অর্থ আমরা সেই ক্ষেত্রের উপর পূর্ণ-পাঠ্য অনুসন্ধানের ক্ষমতা পাই। এটি স্কিমা ক্ষেত্রের সংজ্ঞা
$.name AS name TEXT
এ প্রতিফলিত হয় .

অন্যদিকে, ফিল্ড ট্যাগগুলিকে "ইনডেক্সেবল" হিসাবে টীকা করা হয়, যার মানে আমরা TAG টাইপের একটি সূচী ক্ষেত্র পাই, যার অর্থ হল আমরা ক্ষেত্রের সঠিক মান দ্বারা কোম্পানিগুলি অনুসন্ধান করতে পারি। এটি আবার, স্কিমা ক্ষেত্রের সংজ্ঞায় প্রতিফলিত হয়:

$.tags[*] AS tags TAG

সাধারণ গতিশীল প্রশ্ন তৈরি করুন

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

রিপোজিটরি প্রক্সিতে পদ্ধতির নাম থেকে একটি স্টোর-নির্দিষ্ট ক্যোয়ারী বের করার দুটি উপায় রয়েছে:

  • প্রত্যক্ষভাবে পদ্ধতির নাম থেকে ক্যোয়ারী বের করে।
  • @Query
    ব্যবহার করে একটি ম্যানুয়ালি সংজ্ঞায়িত কোয়েরি ব্যবহার করে অথবা
    @Aggregation
    টীকা।

চলুন রিপোজিটরি ইন্টারফেসে যোগ করা কয়েকটি পদ্ধতির ঘোষণা পরীক্ষা করা যাক।

findOneByName

Redis OM Spring উপযুক্ত ক্যোয়ারী তৈরি করতে পদ্ধতির নাম এবং পরামিতি ব্যবহার করে। এটি প্যাকেজ এবং ফলাফল ফেরত কিভাবে নির্ধারণ করতে পদ্ধতি রিটার্ন টাইপ ব্যবহার করে।

findOneByName
একটি
Optional of Company
প্রদান করে .
findOne
এটিও বোঝায় যে শুধুমাত্র একটি ফলাফল ফেরত দেওয়া হবে, এমনকি একাধিক ফলাফল থাকলেও। প্রত্যাশিত প্যারামিটারের সংখ্যা নির্ধারণ করতে লাইব্রেরি পদ্ধতির নাম পার্স করে। উদাহরণস্বরূপ,
ByName
পদ্ধতির অংশ আমাদের বলে যে আমরা
name
নামে একটি একক প্যারামিটার আশা করি .

findByLocationNear

রেডিস ওএম স্প্রিং জিওজেএসওএন প্রকারগুলিকে ভূ-স্থানিক ডেটা সঞ্চয় করতে সমর্থন করে৷

near
ব্যবহার করে আমাদের প্রশ্নের মধ্যে কীওয়ার্ড, আমরা আমাদের কোডকে একটি
Point
আশা করতে বলছি
(org.springframework.data.geo.Point)
এবং একটি
Distance (org.springframework.data.geo.Distance)
পরামিতি হিসাবে টাইপ করুন।

রিপোজিটরি ব্যবহার করা

অন্যান্য স্প্রিং ডেটা রিপোজিটরির মতো, আপনি অন্য স্প্রিং কম্পোনেন্টে একটি রিপোজিটরি ইনজেক্ট করতে পারেন:

র্যাপিং আপ

এটি শুধুমাত্র একটি প্রিভিউ রেডিস ওএম স্প্রিং এর রিলিজ। আরও অনেক কিছু তৈরি করা বাকি আছে, কিন্তু আপাতত আমাদের আপনার সাহায্য দরকার! আপনার স্প্রিং অ্যাপ্লিকেশনে কীভাবে প্রকল্পটি ইনস্টল করবেন তার বিশদ বিবরণের জন্য আপনি README দেখতে পারেন। আমরা আপনার প্রতিক্রিয়া, PR, এবং সমস্যাগুলিকে স্বাগত জানাই!


  1. ব্রেডক্রাম্বস প্রবর্তন করা হচ্ছে

  2. মঙ্গোডিবি কম্পাস উপস্থাপন করা হচ্ছে

  3. Redis কর্মক্ষমতা উপর চিন্তা

  4. ফাস্টলি কম্পিউটে রেডিস ব্যবহার করুন