রেডিস সহ মোঙ্গোডিবি


95

আপনি একে অপরের সাথে মিলে রেডিস এবং মঙ্গোডিবি ব্যবহার করে কখন উপকৃত হবেন এমন উদাহরণ ব্যবহারের উদাহরণ কেউ দিতে পারে?

উত্তর:


158

রেডিস এবং মঙ্গোডিবি ভাল ফলাফলের সাথে একসাথে ব্যবহার করা যেতে পারে। মঙ্গোডিবি এবং রেডিস (মাইএসকিউএল এবং স্পিনিক্স সহ) চালানোর জন্য সুপরিচিত একটি সংস্থা হ'ল ক্রেগলিস্ট। জেরেমি জাওডনির এই উপস্থাপনাটি দেখুন ।

মংগোডিবি বিভিন্ন উপায়ে ক্রমাগত, ডকুমেন্ট ওরিয়েন্টেড, ডেটাগুলির জন্য আকর্ষণীয়। অস্থির ডেটা বা বিলম্বিত সংবেদনশীল অর্ধ-অধ্যবসায়ী ডেটার জন্য রেডিস আরও আকর্ষণীয়।

মোঙ্গোডিবি-র শীর্ষে রেডিসের কংক্রিট ব্যবহারের কয়েকটি উদাহরণ এখানে।

  • প্রাক-2.2 মঙ্গোডিবির এখনও মেয়াদ শেষ হওয়ার পদ্ধতি নেই mechanism প্রকৃত টিটিএল বাস্তবায়নের জন্য ক্যাপযুক্ত সংগ্রহগুলি সত্যই ব্যবহৃত হতে পারে। রেডিসের একটি টিটিএল-ভিত্তিক মেয়াদোত্তীর্ণ প্রক্রিয়া রয়েছে, এটি অস্থির ডেটা সংরক্ষণ করার সুবিধাজনক করে তোলে। উদাহরণস্বরূপ, ব্যবহারকারীর সেশনগুলি সাধারণত রেডিসে সংরক্ষণ করা হয়, যখন ব্যবহারকারীর ডেটা মংগোডিবিতে সঞ্চিত এবং সূচকযুক্ত করা হবে। নোট করুন যে মঙ্গোডিবি ২.২ সংগ্রহ স্তরে একটি স্বল্প নির্ভুলতার মেয়াদোত্তীর্ণ প্রক্রিয়া চালু করেছে (উদাহরণস্বরূপ ডেটা শুদ্ধ করার জন্য ব্যবহৃত হতে পারে)।

  • রেডিস একটি সুবিধাজনক সেট ডেটাটাইপ এবং এর সাথে সম্পর্কিত ক্রিয়াকলাপ সরবরাহ করে (ইউনিয়ন, ছেদ, একাধিক সেটের পার্থক্য, ইত্যাদি ...)। এই বৈশিষ্ট্যটির শীর্ষে একটি মৌলিক দিকযুক্ত অনুসন্ধান বা ট্যাগিং ইঞ্জিন বাস্তবায়ন করা বেশ সহজ, যা মঙ্গোডিবি আরও traditionalতিহ্যবাহী সূচকের ক্ষমতার একটি আকর্ষণীয় সংযোজন।

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

  • রেডিস একটি পাব / উপ প্রক্রিয়াও সরবরাহ করে। বিতরণকৃত অ্যাপ্লিকেশনটিতে কোনও ইভেন্টের প্রচার ব্যবস্থা কার্যকর হতে পারে। এটি আবার রেডিসের জন্য একটি দুর্দান্ত ব্যবহারের ক্ষেত্রে, যখন অবিচ্ছিন্ন ডেটা মংগোডিবিতে রাখা হয়।

রেডিসের তুলনায় মোংগোডিবিতে ডেটা মডেলটি ডিজাইন করা অনেক সহজ (রেডিস আরও নিম্ন-স্তরের), মূল ক্রমাগত ডেটার জন্য মঙ্গোডিবিয়ের নমনীয়তা এবং রেডিসের সরবরাহকৃত অতিরিক্ত বৈশিষ্ট্যগুলি থেকে (আকর্ষণীয় স্বল্পতা) , আইটেমের মেয়াদোত্তীর্ণকরণ, সারি, পাব / সাব, পারমাণবিক ব্লক, ইত্যাদি ...)। এটি আসলে একটি ভাল সমন্বয়।

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


19
মঙ্গোডিবি ২.২ (সবেমাত্র প্রকাশিত) টিটিএল সমর্থন যুক্ত করেছে, যা আপনার প্রথম পয়েন্টটিকে সম্বোধন করে: ডকস.মঙ্গডবি.আর
জন জুইনক

প্রতিটি তুলনামূলক কিছু শক্তি সম্পর্কে দুর্দান্ত পয়েন্ট।
ব্রায়ান বালকভস্কি

4
প্রতিটি তুলনামূলক কিছু শক্তি সম্পর্কে দুর্দান্ত পয়েন্ট। রেডিসের একটি পয়েন্ট মেমরির জন্য টিউন করছে। অন্যান্য প্রজেক্টগুলি স্বল্প বিলম্বের দিকে দৃষ্টি নিবদ্ধ করে যেমন এয়ারোস্পাইকডিবি, যা ক্লাস্টারিং এবং নির্ভরযোগ্যতার উপর ফোকাস করে, এবং এসএসডি স্টোরেজগুলিতেও ব্যবহার করা যেতে পারে, যখন রিডিস সহজেই পরিচালনা করতে পারে রিয়েল সময় ব্যবহারের ক্ষেত্রে অতিক্রম করতে পারে।
ব্রায়ান বাল্কোভস্কি

জেরেমি Zawodny এর আলাপ ভিডিও নিজেই: youtube.com/watch?v=qFcB1Xw1WSk
Frankenmint

25

স্পষ্টতই এর থেকে অনেক বেশি পার্থক্য রয়েছে তবে অত্যন্ত উচ্চ পর্যালোচনার জন্য:

ব্যবহারের ক্ষেত্রে:

  • রেডিস প্রায়শই বিতরণকারী গণনার জন্য ক্যাচিং স্তর বা ভাগ করা হোয়াইটবোর্ড হিসাবে ব্যবহৃত হয়।
  • মঙ্গোডিবি প্রায়শই traditionalতিহ্যবাহী এসকিউএল ডেটাবেসের জন্য সোয়াপ আউট প্রতিস্থাপন হিসাবে ব্যবহৃত হয়।

প্রযুক্তিগতভাবে:

  • রেডিস হ'ল ডিস্ক অধ্যবসায়ের সাথে একটি ইন-মেমোরি ডিবি (পুরো ডিবিটি র‍্যামের সাথে ফিট করার প্রয়োজন))
  • মঙ্গোডিবি একটি ডিস্ক-ব্যাকড ডিবি যা সূচকের জন্য কেবল পর্যাপ্ত র্যাম প্রয়োজন RAM

কিছু ওভারল্যাপ রয়েছে তবে উভয়টি ব্যবহার করা অত্যন্ত সাধারণ। কারণটা এখানে:

  • মঙ্গোডিবি আরও সস্তা ডেটা সঞ্চয় করতে পারে।
  • সম্পূর্ণ ডেটাসেটের জন্য রেডিস দ্রুত।
  • মঙ্গোডিবি'র সংস্কৃতিটি "এটি সমস্ত সংরক্ষণ করুন, পরে অ্যাক্সেসের ধরণগুলি খুঁজে বের করুন"
  • রেডিসের সংস্কৃতিটি "আপনি কীভাবে ডেটা অ্যাক্সেস করবেন, তারপরে সংরক্ষণ করবেন" সাবধানতার সাথে বিবেচনা করুন
  • উভয়েরই ওপেন সোর্স সরঞ্জাম রয়েছে যা তাদের উপর নির্ভর করে, যার মধ্যে অনেকগুলি একসাথে ব্যবহৃত হয়।

রেডিস একটি traditionalতিহ্যবাহী ডেটাস্টোরের প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে তবে এটি প্রায়শই অন্য একটি সাধারণ "দীর্ঘ" ডেটা স্টোর, যেমন মঙ্গো, পোস্টগ্র্যাস্কিল, মাইএসকিউএল ইত্যাদির সাথে ব্যবহৃত হয় used


0

রেডিস একটি ক্যাচিং সার্ভার হিসাবে মঙ্গোডিবির সাথে দুর্দান্তভাবে কাজ করে। এখানে যা ঘটে তা এই।

যে কোনও সময় মংগুজ একটি ক্যাশে ক্যোয়ারী ইস্যু করে, এটি প্রথমে ক্যাশে সার্ভারে যাবে।

ক্যাশে সার্ভারটি পরীক্ষা করে দেখাবে যে সঠিক জিজ্ঞাসাটি আগে কখনও জারি করা হয়েছে কিনা।

যদি তা না থাকে তবে ক্যাশে সার্ভারটি কোয়েরিটি নেবে, এটি মঙ্গোদ্বকে প্রেরণ করবে এবং মঙ্গো কোয়েরিটি সম্পাদন করবে।

এরপরে আমরা সেই ক্যোয়ারির ফলাফলটি নেব, এটি আবার ক্যাশে সার্ভারে ফিরে যায়, ক্যাশে সার্ভারটি ক্যোয়ারির ফলাফলটি নিজেই সংরক্ষণ করবে।

এটি যে কোনও সময় বলবে যে আমি এই ক্যোয়ারীটি কার্যকর করি, আমি এই প্রতিক্রিয়াটি পেয়েছি এবং তাই এটি জারি করা প্রশ্নের এবং সেই প্রশ্নগুলি থেকে ফিরে আসা প্রতিক্রিয়াগুলির মধ্যে একটি রেকর্ড বজায় রাখতে চলেছে।

ক্যাশে সার্ভারটি প্রতিক্রিয়া নেবে এবং এটিকে আবার মঙ্গুজে প্রেরণ করবে, মঙ্গুজ এটি প্রকাশ করতে দেবে এবং শেষ পর্যন্ত এটি অ্যাপ্লিকেশনটির অভ্যন্তরে শেষ হবে।

যে কোনও সময় একই সঠিক কোয়েরিটি আবার জারি করা হলে, মঙ্গুজ একই ক্যোয়ারী ক্যাশে সার্ভারে প্রেরণ করবে, তবে ক্যাশে সার্ভার যদি দেখে যে এই কোয়েরিটি ইঙ্গিত করা হয়েছিল তার আগে এই প্রশ্নটি মঙ্গদ্ববে পাঠানো হবে না, পরিবর্তে এর প্রতিক্রিয়াটি গ্রহণ করবে ক্যোয়ারী এটি শেষ বার পেয়েছিল এবং সঙ্গে সঙ্গে এটিকে আবার মঙ্গুজে প্রেরণ করবে send এখানে কোনও সূচক নেই, পূর্ণ টেবিল স্ক্যান নেই, কিছুই নেই।

এই জিজ্ঞাসাটি কার্যকর করা হয়েছে তা বলার জন্য আমরা একটি সাধারণ অনুসন্ধান করছি? হ্যাঁ? ঠিক আছে, অনুরোধটি নিন এবং তাৎক্ষণিকভাবে এটি আবার প্রেরণ করুন এবং মঙ্গোতে কিছু প্রেরণ করবেন না।

আমাদের কাছে মঙ্গুজ সার্ভার, ক্যাশে সার্ভার (রেডিস) এবং মংডব রয়েছে।

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

সুতরাং আমরা _আইডি করে ব্লগপোস্টগুলির একগুচ্ছ সন্ধান করছি।

সুতরাং এখানকার কীগুলি হ'ল আমরা আগে যে রেকর্ডগুলি দেখেছি তার _ইড।

সুতরাং কল্পনা করা যাক যে মঙ্গুজ একটি নতুন কোয়েরি জারি করেছে যেখানে এটি 123 এর _id সহ একটি ব্লগপোস্ট সন্ধানের চেষ্টা করে, ক্যোয়ারী ক্যাশে সার্ভারে প্রবাহিত হয়, ক্যাশে সার্ভারটি কোনও _ ক্যারিয়ারের অনুসন্ধানের জন্য কোন ফলাফলের ফলাফল রয়েছে কিনা তা পরীক্ষা করে দেখবে 123 এর।

যদি এটি ক্যাশে সার্ভারে বিদ্যমান না থাকে তবে এই ক্যোয়ারীটি নেওয়া হয় এবং মঙ্গোদব উদাহরণটিতে পাঠানো হয়। মংডব ক্যোরিটি সম্পাদন করবে, একটি প্রতিক্রিয়া পাবে এবং এটিকে আবার পাঠাবে।

এই ফলাফলটি ক্যাশে সার্ভারে ফেরত পাঠানো হয়েছে যারা ফলাফলটি নিয়ে যায় এবং তাত্ক্ষণিকভাবে তা আবার মঙ্গুজে প্রেরণ করে যাতে আমরা যত তাড়াতাড়ি সম্ভব সাড়া পাই।

ঠিক তার পরে, ক্যাশে সার্ভারটি জারি করা ক্যোয়ারীও গ্রহণ করবে এবং এটি জারি করা ক্যোয়ারির সংগ্রহগুলিতে যোগ করবে এবং কোয়েরির ফলাফল গ্রহণ করবে এবং এটিকে কোয়েরির বিপরীতে সংরক্ষণ করবে।

সুতরাং আমরা কল্পনা করতে পারি যে ভবিষ্যতে আমরা আবার একই প্রশ্নটি ইস্যু করি, এটি ক্যাশে সার্ভারটি হিট করে, এটি তার সমস্ত কীগুলি দেখায় এবং বলে ওহ আমি ইতিমধ্যে ব্লগপোস্টটি পেয়েছি, এটি মঙ্গোতে পৌঁছায় না, এটি কেবল নেয় ক্যোয়ারির ফলাফল এবং এটি সরাসরি মঙ্গুজে প্রেরণ করে।

আমরা জটিল ক্যোয়ারি লজিক করছি না, কোনও সূচক নেই, এর মতো কিছুই নেই। এটি যত দ্রুত সম্ভব। এটি একটি সাধারণ মূল মূল্য অনুসন্ধান।

ক্যাশে সার্ভার (রেডিস) মঙ্গোডিবিয়ের সাথে কীভাবে কাজ করে তার একটি সংক্ষিপ্তসার জানায়।

এখন অন্যান্য উদ্বেগ আছে। আমরা কি চিরকালের জন্য ডেটা ক্যাশে করছি? আমরা কীভাবে রেকর্ড আপডেট করব?

আমরা সবসময় ক্যাশে ডেটা সঞ্চয় করে এবং ক্যাশে থেকে পড়তে চাই না।

কোনও লিখিত ক্রিয়াতে ক্যাশে সার্ভার ব্যবহার করা হয় না। ক্যাশে স্তরটি কেবল ডেটা পড়ার জন্য ব্যবহৃত হয়। আমরা যদি কখনও ডেটা লিখি তবে লেখাটি সর্বদা মঙ্গডব উদাহরণে চলে যাবে এবং আমাদের নিশ্চিত করা দরকার যে আমরা যে কোনও সময় ডেটা লিখি আমরা ক্যাশে সার্ভারে সঞ্চিত কোনও ডেটা সাফ করে যা আমরা মঙ্গোতে সদ্য আপডেট হওয়া রেকর্ডের সাথে সম্পর্কিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.