কম্পিউটার

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

আপনি কি RedisConf এর মূল নোট ডেমো মনে রাখবেন? যদি হ্যাঁ, আপনি উপস্থাপন করা খুচরা অ্যাপ্লিকেশন (RedisMart) এর পর্দার পিছনের বিকাশ দেখে উপভোগ করতে পারেন। যদি তা না হয়, তাহলে Yiftach এবং Ash এর উপস্থাপনা দেখার সময় এসেছে। এখানে আবার ভিডিওটির লিঙ্ক:

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

প্রয়োজনীয়তা

প্রায়শই সফ্টওয়্যার বিকাশে, আসুন কিছু মৌলিক প্রয়োজনীয়তা নিয়ে আলোচনা করে শুরু করি। এখানে কিছু অনানুষ্ঠানিকভাবে উল্লেখ করা ব্যবহারকারীর গল্প রয়েছে:

  • একজন খুচরা গ্রাহক হিসাবে:
    • আমি দ্রুত থাকতে চাই (<100ms এন্ড-টু-এন্ড লেটেন্সি) ক্যাটালগ এবং পণ্যের বিবরণে অ্যাক্সেস পণ্যগুলি খুঁজে পেতে সক্ষম হয়ে ৷ বিভিন্ন মানদণ্ডের উপর ভিত্তি করে (যেমন, পূর্ণ-পাঠ্য, মূল্যের সীমা, অন্যান্য গ্রাহকদের রেটিং, বা মুখী অনুসন্ধান)। উচ্চ প্রতিক্রিয়া সময় উচ্চ বাউন্স হারের ফলে।
    • যদি আমি কোনো পণ্যের ব্র্যান্ডের নাম না জানি বা আমি আগে যা কিনেছিলাম তার মতো কিছু চাই, আমি ছবি দ্বারা পণ্য কেনাকাটা করতে চাই। আমার কাছে যা আছে তার সাথে ঘনিষ্ঠ মিল বা দৃশ্যত একই রকমের ক্যামেরা খুঁজে পাওয়া ভালো হবে।
    • আমি একটি নিরাপদ বিতরণ করতে চাই৷ অথবা অনলাইনে কিনতে এবং দোকানে বা কার্বসাইডে নিতে সক্ষম হন (ক্লিক করুন এবং সংগ্রহ করুন)।
  • একজন ইনভেন্টরি ম্যানেজার হিসেবে:
    • আমার গ্রাহকদের জন্য একটি উচ্চতর পরিপূর্ণ অভিজ্ঞতা প্রদান করার জন্য আমার ইনভেন্টরির সঠিক, রিয়েল-টাইম ভিউ থাকতে হবে।
    • আমি আমার ইনভেন্টরি অপ্টিমাইজ করতে চাই যাতে উচ্চ-চাহিদার আইটেমগুলিকে স্টকে রাখা যায় এবং ধীর গতিতে চলমান পণ্যের স্টক কমানো যায়৷
    • স্টক অপ্টিমাইজ করার জন্য আমার বিভিন্ন স্টোর এবং/অথবা পরিপূর্ণতা কেন্দ্র জুড়ে ইনভেন্টরিগুলির একটি রিয়েল-টাইম ভিউ দরকার৷

স্থাপত্য    

এখন যেহেতু আমরা প্রয়োজনীয়তাগুলি জানি, আমাকে রেডিস কীভাবে আমাদের সাহায্য করতে সক্ষম তার একটি ধারণা আঁকুন:

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

সেখান থেকে, নিম্নলিখিত নকশাটি কল্পনা করা খুব কঠিন ছিল না:

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

নীল বাক্সগুলি পরিষেবার প্রতিনিধিত্ব করে৷ লাল বাক্সগুলি সেই পরিষেবাগুলির দ্বারা ব্যবহৃত ডাটাবেসগুলি দেখায়৷

আমরা কিছু মাইক্রোসার্ভিস পদ্ধতি অনুসরণ করেছি যেমন:

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

বাস্তবায়ন

RedisMart একটি ব্যবহারকারী ইন্টারফেস অফার করে যা ওয়েব-শপ ওয়েব অ্যাপ্লিকেশন দ্বারা পরিবেশিত হয়। RedisMart এর একটি ফ্রন্টএন্ড UI (গ্রাহক-মুখী খুচরা ওয়েবসাইট) এবং একটি ব্যাকএন্ড UI (ইনভেন্টরি পরিচালনার জন্য) রয়েছে। আমরা এমন একগুচ্ছ পরিষেবা বাস্তবায়ন করেছি যা পর্দার আড়ালে থাকা অ্যাপ্লিকেশন দ্বারা লাভবান হয়।

  • ক্রয়: ক্রয় পরিষেবা (আশ্চর্যজনকভাবে) গ্রাহকের কেনাকাটা পরিচালনা করে৷
  • ইনভেন্টরি: ইনভেন্টরি পরিষেবা ইনভেন্টরির মধ্যে স্টকের পরিমাণ সম্পর্কে প্রশ্নের উত্তর দেয় এবং যখন কোনও গ্রাহক আইটেম ক্রয় করে তখন পরিমাণ হ্রাস পায়। রেডিস এন্টারপ্রাইজের অ্যাক্টিভ-অ্যাকটিভ ফিচার ব্যবহার করে ইনভেন্টরি আপডেটগুলিকে রিয়েল-টাইমে অন্যান্য অবস্থানের ইনভেন্টরিতে প্রতিলিপি করা হয়। রেডিস এন্টারপ্রাইজ সমসাময়িক আপডেটের সাথে ডিল করার জন্য দ্বন্দ্ব-মুক্ত প্রতিলিপিকৃত ডেটা প্রকারের সুবিধা দেয়। এই ক্ষেত্রে, পাল্টা ক্ষতি প্রতিরোধ করার জন্য একটি রিসেটযোগ্য ইতিবাচক নেতিবাচক কাউন্টার ডেটা টাইপ ব্যবহার করা হয়।
  • পণ্যের ক্যাটালগ :পণ্য ক্যাটালগ পরিষেবা পণ্য-সম্পর্কিত তথ্য প্রদান করে এবং পণ্যগুলি খুঁজে পাওয়ার অত্যাধুনিক উপায় সরবরাহ করে। এটি একটি Redis ডাটাবেস ব্যবহার করে যেখানে RediSearch + RedisJSON মডিউল স্থাপন করা আছে। RedisJSON আমাদের সরাসরি JSON নথি হিসাবে পণ্যের বিবরণ সংরক্ষণ করার অনুমতি দেয়। RediSearch JSON নথি সূচী, ক্যোয়ারী এবং পূর্ণ-পাঠ্য অনুসন্ধান করতে পারে। রেডিস এন্টারপ্রাইজের অ্যাক্টিভ-অ্যাকটিভ বৈশিষ্ট্য ব্যবহার করে পণ্যের আপডেটগুলি সহজেই একাধিক সাইট জুড়ে প্রচার করা যেতে পারে।
  • ছবি স্বীকৃতি :অবশেষে, ইমেজ রিকগনিশন সার্ভিস ইমেজে ভেক্টর-সাম্য অনুসন্ধানের জন্য একটি AI মডেল-সার্ভিং কার্যকারিতা অফার করে। এটি একটি Redis ডাটাবেস ব্যবহার করে যাতে RedisGears, RedisAI, এবং RediSearch মডিউল ইনস্টল করা আছে। RedisGears আমাদের একটি ডেটা পাইপলাইন তৈরি করতে এবং ডেটা যেখানে বাস করে তার কাছাকাছি এটি কার্যকর করতে দেয়। আমরা AI মডেল পরিবেশন এবং অনুমানের জন্য Redis AI এর সুবিধা নিয়েছি। AI মডেলের আউটপুটের উপর ভিত্তি করে অনুরূপ চিত্রগুলির জন্য প্রকৃত অনুসন্ধান সম্পাদন করতে RediSearch ব্যবহার করা হয়৷

আগেই বলা হয়েছে, এটি একটি সিরিজের প্রথম নিবন্ধ। আমরা কীভাবে পৃথক পরিষেবাগুলি বাস্তবায়ন করেছি সে সম্পর্কে আরও জানতে অনুগ্রহ করে সাথে থাকুন৷

RedisMart

এখন আমরা পর্দার আড়ালে দেখেছি, আসুন দেখি মঞ্চে অ্যাপ্লিকেশনটি কেমন দেখায়৷

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

হোম পেজ আপনাকে প্রধান পণ্য বিভাগ দেখায়। একটি বিভাগে একটি ক্লিক পণ্য ক্যাটালগ পরিষেবার মাধ্যমে একটি অনুসন্ধান ক্যোয়ারী ট্রিগার করে যা এই ধরনের একটি বিভাগের অন্তর্গত প্রথম 16টি পণ্য ফিরিয়ে দেয়।

"সার্চ প্রোডাক্ট" ফিল্ড আপনাকে প্রোডাক্টের জন্য পূর্ণ-টেক্সট সার্চ করতে দেয়। এটি নিম্নলিখিত অনুসন্ধান ফলাফল পৃষ্ঠায় নিয়ে যায়:

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

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

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

আপনি দেখতে পাচ্ছেন, ট্যাগ এবং একত্রিতকরণ একটি ভূমিকা পালন করে।

উপরের ডানদিকের কোণায় থাকা ছোট্ট ক্যামেরা আইকনে ক্লিক করলে আপনি এমন কিছুর একটি ছবি তুলতে পারবেন যা আপনি পণ্যের ক্যাটালগের মধ্যে খুঁজে পেতে চান। ডগের নিচের ফটোটি আমাদের ডাটাবেসে অন্য কোনো ডগ খুঁজে পায়নি…

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

…কিন্তু এটি সুন্দরভাবে কিছু হেডফোন খুঁজে পেয়েছে৷

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

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

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

RediSearch-এর ভূ-অনুসন্ধান এই স্থানীয় পিকআপ বৈশিষ্ট্যটিকে ক্ষমতা দেয়। ডিবাগ ভিউ আপনাকে আবার একটি ইঙ্গিত দেয় যে এটি পর্দার আড়ালে কীভাবে উপলব্ধি করা হয়।

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

একজন গ্রাহক কেনাকাটা সম্পূর্ণ করার সাথে সাথে স্টক থাকা আইটেমগুলির সংখ্যা কমিয়ে ইনভেন্টরি পরিষেবা জড়িত হয়ে যায়। এটি আমাদের সরাসরি অ্যাপ্লিকেশনের ব্যাকএন্ডে নিয়ে আসে, যা আমাদের ইনভেন্টরি পরিচালনা করতে দেয়। RedisMart প্রতিলিপি করা প্রতিটি সাইটে কীভাবে তাৎক্ষণিক ইনভেন্টরি আপডেটগুলি পর্যবেক্ষণ করা হয় তা কল্পনা করে। মার্কিন যুক্তরাষ্ট্রে একটি ক্রয় (GCP us-central1) এক পলকের সাথে ইউরোপে (Azure উত্তর-ইউরোপ) প্রতিলিপি করা হয়।

RedisMart:Redis সহ একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন

আবার, আমরা পরে আরো বিস্তারিত কভার করব। এখানে মূল বিষয় হল যে আপনি খুব কম নেটওয়ার্ক লেটেন্সিতে একটি কাছাকাছি অবস্থান থেকে ডেটা অ্যাক্সেস করতে পারেন, যখন একাধিক সাইটে একসাথে ডেটা পরিবর্তন করা হয় তখন পাল্টা ক্ষতি প্রতিরোধ করা হয়।

আপনি নিম্নলিখিত ভিডিওটি দেখে অ্যাপ্লিকেশনটি কার্যকর দেখতে পারেন:

সারাংশ   

আমরা আশা করি আপনি Redis-এর সাথে একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত খুচরা অ্যাপ্লিকেশন তৈরি সম্পর্কে ব্লগ সিরিজের এই প্রথম অংশটি পড়ে উপভোগ করেছেন। আপনি দেখতে পাচ্ছেন, Redis রিয়েল-টাইম ডেটা প্ল্যাটফর্ম আমাদেরকে RediSearch + RedisJSON-এর ডকুমেন্ট ডাটাবেস ক্ষমতা ব্যবহার করে পণ্যের তথ্যে অবিলম্বে অ্যাক্সেস (100ms এর কম এন্ড-টু-এন্ড লেটেন্সি) এর মতো প্রয়োজনীয়তাগুলিকে সমাধান করতে দেয়৷ RediSearch + RedisGears + RedisAI এর সংমিশ্রণ পণ্য ক্যাটালগের মধ্যে অনুরূপ পণ্যগুলি খুঁজে পাওয়ার জন্য AI-চালিত চিত্র অনুসন্ধান সক্ষম করে। এছাড়াও, মুখী এবং ভূ-অনুসন্ধানের মতো বৈশিষ্ট্যগুলি কভার করা হয়েছিল। সর্বশেষ, কিন্তু অন্তত নয়, আমরা আপনাকে দেখিয়েছি যে আপনি রেডিস এন্টারপ্রাইজের সক্রিয়-সক্রিয় বৈশিষ্ট্যের উপর ভিত্তি করে সহজেই একটি ভূ-প্রতিলিপিকৃত, রিয়েল-টাইম ইনভেন্টরি তৈরি করতে পারেন। এই সমস্ত কিছুর সাথে, রেডিস রিয়েল-টাইম প্ল্যাটফর্ম খুচরা কোম্পানিগুলিকে সামগ্রিক ক্রয়ের অভিজ্ঞতাকে ইতিবাচকভাবে প্রভাবিত করতে, গ্রাহকদের জন্য সর্বোত্তম সম্ভাব্য পরিপূর্ণ অভিজ্ঞতা প্রদান করতে এবং সবচেয়ে সাশ্রয়ী উপায়ে ইনভেন্টরিগুলিকে অপ্টিমাইজ করতে সাহায্য করে৷

RedisMart এর জন্য আমরা যে স্বতন্ত্র পরিষেবাগুলি প্রয়োগ করেছি সেগুলি সম্পর্কে আপনি কি আরও জানতে চান? তারপর সিরিজের পরবর্তী ব্লগ নিবন্ধের জন্য সাথে থাকুন!

এটা নিজে চেষ্টা করতে চান? একটি রিয়েল-টাইম ডেটা প্ল্যাটফর্ম হিসাবে Redis এর সাথে আপনার হাত নোংরা করার জন্য এখানে কিছু লিঙ্ক রয়েছে:

  • মডিউল সম্পর্কে আরও
  • github.com/RediSearch
  • github.com/RedisJSON
  • github.com/RedisGears
  • github.com/RedisAI
  • রেডিস এন্টারপ্রাইজ ক্লাউড
  • সক্রিয়-সক্রিয় জিও-ডিস্ট্রিবিউশন

ক্রেডিট

যারা এই ডেমো অ্যাপ্লিকেশনটিতে অবদান রেখেছেন তাদের সবাইকে অনেক ধন্যবাদ:

  • RedisConf এর সময় ডেমো অ্যাপ্লিকেশন উপস্থাপনের জন্য Yiftach Shoolman এবং Ash Sahu
  • ডেমো অ্যাপ্লিকেশনের প্রয়োজনীয়তা তালিকায় অবদান রাখার জন্য, RedisConf সংগঠিত করার জন্য, UI ডিজাইনে সাহায্য করার জন্য এবং এই ব্লগ পোস্টে অবদান রাখার জন্য রেডিস মার্কেটিং টিম (এবং বিশেষ করে Udi Gotlieb, Ash Sahu, এবং Doug Tidwell, এবং Bryson Coles) li>
  • প্রযুক্তিগত সক্ষমতা দল (এবং বিশেষ করে মার্টিন ফরস্টনার, গ্রেগ জর্জেস এবং ডেভিড মায়ার) ডেমো অ্যাপ্লিকেশন বাস্তবায়ন, পরীক্ষা এবং ডিজাইন করার জন্য—এবং এই ব্লগ পোস্টে অবদান রাখার জন্য
  • CTO দল (এবং বিশেষ করে Leibale Eidelman, Guy Korland) মডিউল এবং ইমেজ রিকগনিশন সার্ভিস ডেভেলপ করার জন্য
  • প্রোডাক্ট ম্যানেজমেন্ট টিম (এবং বিশেষ করে Pieter Cailliau, Emmanuel Keller, Jonathan Salomon, and Amiram Mizne) ডেমো অ্যাপ্লিকেশনের প্রয়োজনীয়তা তালিকায় অবদান রাখার জন্য এবং পণ্যের বৈশিষ্ট্যগুলি প্রদানের জন্য
  • এবং প্রত্যেককে আমরা এখানে উল্লেখ করতে ভুলে গেছি

আমরা এই ব্লগ সিরিজটি RedisMart অ্যাপ্লিকেশনের প্রাথমিক বিকাশকারী, মার্টিন ফরস্টনারকে উৎসর্গ করতে চাই। অত্যন্ত দুঃখের সাথে জানাচ্ছি যে তিনি সম্প্রতি মারা গেছেন। মার্টিনের জ্ঞান, প্রতিভা এবং হাস্যরসের অনুভূতি কোনটির পরেই ছিল না। তিনি রেডিসের জন্য একজন সফ্টওয়্যার ইঞ্জিনিয়ারের চেয়ে অনেক বেশি ছিলেন—তিনি একজন সহকর্মী, সতীর্থ, পরামর্শদাতা এবং একজন বন্ধু ছিলেন। শান্তিতে বিশ্রাম করুন, মার্টিন, আমরা আপনাকে মিস করি!


  1. সার্ভারলেস রেডিস এবং প্রতিক্রিয়া নেটিভ সহ অ্যাপ-মধ্যস্থ ঘোষণা

  2. এজ ক্যাশিং সহ 5 ms গ্লোবাল রেডিস লেটেন্সি

  3. ক্লাউডফ্লেয়ার কর্মীদের সাথে রেডিস @ এজ

  4. উদাহরণ সহ Redis GEORADIUSBYMEMBER কমান্ড - Redis টিউটোরিয়াল