একাধিক রেডিস ডাটাবেসগুলির পয়েন্ট কী?


159

সুতরাং, আমি এমন একটি জায়গায় এসে পৌঁছেছি যেখানে আমি আমার সংরক্ষণ করা ডেটা আলাদা আলাদা ডাটাবেসে ভাগ করে নিতে চেয়েছিলাম কারণ মাঝে মাঝে আমাকে নির্দিষ্ট ধরণের ডেটাতে কী কমান্ডটি ব্যবহার করতে হবে, এবং দ্রুততর করার জন্য এটি পৃথক করতে চেয়েছিলাম ।

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


আপনার নোড.জেএস অ্যাপে, এটি করুন ---> মডিউল.এক্সপোর্টস = 1 "1": "রেডিস ডিবি একের জন্য আপনার নাম", "2": "রেডিস ডিবি টু'র জন্য আপনার নাম", "3": "আপনার রেডিস ডিবি থ্রি "} ইত্যাদির জন্য নাম দিন, বা কীগুলি এবং মানগুলি স্যুইচ করুন, আপনার যা কিছু প্রয়োজন
আলেকজান্ডার মিলস

1
রেডিস ২.৮.০ এবং তারপরে আপনি কেইওয়াইএসের পরিবর্তে স্ক্যান ব্যবহার করার পরামর্শ দিচ্ছেন, কারণ এটি একসাথে অল্প সংখ্যক উপাদানগুলিতে পুনরাবৃত্তি করে (এভাবে দীর্ঘ সময় ধরে সার্ভারকে অবরুদ্ধ করা হয় না)।
ট্রায়হার্ডার

উত্তর:


85

মূলত, একই উদাহরণে রেডিস ডাটাবেসগুলি আরডিবিএমএস ডাটাবেসের উদাহরণগুলির মধ্যে স্কিমার চেয়ে আলাদা নয়।

সুতরাং, এই সমস্তটির সাথে, কেন / কখন আমি একাধিক রেডিস ডাটাবেস ব্যবহার করতে চাইব কেবল প্রতিটি অতিরিক্ত ডাটাবেসের জন্য রেডিসের অতিরিক্ত উদাহরণ সন্ধানের পরিবর্তে?

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


25
একাধিক রেডিস দৃষ্টান্ত সর্বদা যাওয়ার উপায়। সময়কাল। বিভিন্ন ডেটার জন্য সমান্তরাল ক্যোয়ারী চালান। যদি আপনার সিআইসিডি পাইপলাইন আপনার জন্য ক্যাশে ক্লাস্টার তৈরি করে না, তার চেয়ে ঠিক করুন ..... আপনি পয়েন্টটি পান
Cmag

3
এটি ওপিএস পয়েন্টগুলিকে সম্বোধন করে না: (1) রেডিস কেন প্রতিটি অতিরিক্ত ডাটাবেসের জন্য একটি অতিরিক্ত কোর ব্যবহার করার চেষ্টা করে না? (২) ডাটাবেসগুলিতে একক থ্রেড হওয়ার সুবিধা কী?
iv 2

93

আপনি একক redis দৃষ্টান্তে একাধিক ডাটাবেস ব্যবহার করতে চান না। এটি হ্রাস করা হয় এবং যেমন আপনি উল্লেখ করেছেন, একাধিক উদাহরণ আপনাকে একাধিক কোরের সুবিধা নিতে দেয়। আপনি যদি ডাটাবেস নির্বাচন ব্যবহার করেন তবে আপগ্রেড করার সময় আপনাকে রিফ্যাক্টর করতে হবে। একাধিক পরিস্থিতি পর্যবেক্ষণ এবং পরিচালনা করা কঠিন বা বেদনাদায়ক নয়।

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

জোনাতন যেমন বলেছিলেন, কী কমান্ডটি ব্যবহার করবেন না। আপনি কেবল একটি মূল সূচক তৈরি করলে আপনি আরও ভাল পারফরম্যান্স পাবেন find যখনই কোনও কী যুক্ত করুন, একটি কীতে কী নাম যুক্ত করুন। আপনি কমানোর পরে কীগুলি কমান্ডটি মারাত্মকভাবে কার্যকর হবে না কারণ এটি ফিরে আসতে উল্লেখযোগ্য সময় নেবে।

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

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

একাধিক উদাহরণ ব্যবহার করে আপনি একাধিক থ্রেডিং জটিলতাকে একটি সহজ বার্তা পাসিং স্টাইল সিস্টেমে পরিণত করেন।


57
একাধিক ডাটাবেস ব্যবহার করে হ্রাস করা হয়? আপনি যে বিবৃতি জন্য একটি রেফারেন্স প্রদান করতে পারেন দয়া করে। আমি সচেতন যে একাধিক ডাটাবেসগুলি রেডিস ক্লাস্টারে সমর্থিত নয় তবে কোনও জটিল মাল্টি-কি কমান্ডও নেই এবং সেগুলি অবনমিত হয় না।
অস্টেরগার্ড

27
রেডিসের 'মালিক' এর কিছু (শক্তিশালী) প্রমাণ (গুগল কোড অনুসারে) যে "... ডাটাবেসগুলিকে অবজ্ঞা করা হবে না যদিও আমি অতীতে বলেছিলাম যে সেগুলি হবে।"
কেনি এভিট

3
আপনি রেডিস-ক্লাস্টারে একাধিক রেডিস ডিবি ব্যবহার করতে পারবেন না। একপাশে, একাধিক ডাটাবেস এখনও একটি জিনিস হবে।
coredump

26
অবচয় বিবৃতি জন্য -1। একাধিক ডাটাবেস নিরুৎসাহিত হতে পারে, এবং রেডিস-ক্লাস্টারে অসমর্থিত হতে পারে, তবে সেগুলি অবনমিত হয় না।
AgDude

1
@ দ্য রিয়েল-বিল কীভাবে আপনি "কী সূচক তৈরি করতে" পারেন?
কেস ডি কুটার

57

এমনকি সালভাতোর সানফিলিপো (রেডিসের স্রষ্টা) মনে করেন রেডিসে একাধিক ডিবি ব্যবহার করা খারাপ ধারণা। এখানে তার মন্তব্য দেখুন:

https://groups.google.com/d/topic/redis-db/vS5wX8X4Cjg/discussion

আমি বুঝতে পারি যে এটি কীভাবে কার্যকর হতে পারে তবে দুর্ভাগ্যক্রমে আমি রেডিস একাধিক ডাটাবেস ত্রুটিগুলিকে রেডিস ডিজাইনের ক্ষেত্রে আমার সবচেয়ে খারাপ সিদ্ধান্ত বিবেচনা করি ... কোনও ধরণের আসল লাভ ছাড়াই এটি অভ্যন্তরগুলিকে আরও জটিল করে তোলে। বাস্তবতা হ'ল কী এবং ভিএম এর সক্রিয় মেয়াদ শেষ হওয়ার মতো বিভিন্ন কারণে ডাটাবেসগুলি ভাল স্কেল করে না। ডিবি নির্বাচন যদি স্ট্রিংয়ের সাথে সম্পাদন করা যায় তবে আমি দেখতে পাচ্ছি যে এই বৈশিষ্ট্যটি স্কেলযোগ্য ও (1) অভিধান স্তর হিসাবে ব্যবহৃত হচ্ছে, পরিবর্তে এটি নয় is

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


4
ধরুন, ডিবি নির্বাচন ব্যবহার করা কি কেবল একটি উপসর্গ ব্যবহারের চেয়ে কম দক্ষ? এখানে কি এই বাক্যটির অর্থ (কেউ দয়া করে স্পষ্ট করে বলতে পারেন)? "ডিবি নির্বাচন যদি স্ট্রিং দিয়ে সম্পাদন করা যায় তবে আমি দেখতে পাচ্ছি যে এই বৈশিষ্ট্যটি স্কেলযোগ্য ও (1) অভিধান স্তর হিসাবে ব্যবহৃত হচ্ছে, পরিবর্তে এটি নয় not"
ডিভিটান

8
  1. আমি একক নজরে একাধিক ডাটাবেস থাকার কোনও সুবিধা সত্যই জানি না। আমি মনে করি এটি কার্যকর যদি একাধিক পরিষেবাগুলি একই ডাটাবেস সার্ভার ব্যবহার করে তবে আপনি কী সংঘর্ষ এড়াতে পারবেন।

  2. আমি KEYSকমান্ডটি ব্যবহার করে প্রায় তৈরি করার পরামর্শ দেব না , কারণ এটি ও (এন) এবং এটি ভাল স্কেল করে না। আপনি এটি অন্য কোনও উপায়ে অর্জন করতে পারেন এমনটি কী ব্যবহার করছেন? যদি কার্যকারিতা KEYSযেমন জরুরী থাকে তবে রেডিস আপনার পক্ষে সেরা ম্যাচ নয় ।

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


2 এর জবাবে: আমি কী কমান্ডটি তখনই ব্যবহার করি যখন আমার সমস্ত কীগুলি প্রয়োজন। আমি এটি একইভাবে ব্যবহার করি যাতে কেউ হিটল ব্যবহার করে। দুজনেই ও (এন)। কিছু রিজেেক্সের জন্য আপনার বিশাল বিশাল কীগুলির সন্ধানের দরকার থাকলে কীগুলি খারাপ, তবে আপনার কিছু ডিবিতে সমস্ত কীগুলিতে কিছু অপারেশন করার প্রয়োজন হলে এটি পুরোপুরি ঠিক। 3 এর প্রতিক্রিয়ায়: আমি একটি ডাটাবেসে একক থ্রেডিংয়ের সুবিধা বুঝতে পারি। আমি এটি অনেকগুলি ডাটাবেস জুড়ে বুঝতে পারি না কারণ একটি ডাটাবেসের কোনও ক্রিয়াকলাপ কখনই অন্য ডাটাবেস এএফআইএকে কোনও ক্রিয়াকে অবরুদ্ধ করে না।
এলি

3

আমি ইমেল ঠিকানার ব্ল্যাকলিস্ট বাস্তবায়নের জন্য রেডিস ব্যবহার করছি এবং বিভিন্ন স্তরের ব্ল্যাকলিস্টিংয়ের জন্য আমার বিভিন্ন টিটিএল মান রয়েছে, সুতরাং একই উদাহরণে বিভিন্ন ডিবি থাকা আমাকে অনেক সাহায্য করে।


1
আমরা এখন একই সমস্যার মুখোমুখি হয়েছি - আমরা আমাদের ডেটার বিভিন্ন অংশের জন্য আলাদা এলআরইউ নীতি নির্ধারণ করতে চাই। আপনি কীভাবে এটি প্রয়োগ করেছেন তা ভাগ করে নিতে পারেন?
ব্যবহারকারী2717436

@ user2717436 আমি নিশ্চিত না যে আমি যা করি তা আপনার সাথে সম্পর্কিত কিনা তবে আমি কীগুলি সন্নিবেশ করানোর সময় সর্বদা কীগুলির টিটিএল সেট করে বিভিন্ন সেট হিসাবে বিভিন্ন ডাটাবেস ব্যবহার করি। যেমন redis.get (1) এ ব্ল্যাকলিস্ট এ রয়েছে এবং আমি যখনই কোনও কী সেট করি তখন আমি মেয়াদ 5000 কে সেট করে set এবং redis.get (2) এ ব্ল্যাকলিস্ট বি আছে এবং যখনই আমি সেখানে কোনও কী সেট করি, তখন আমি 10000
কোমরড হোমার

2

অ্যাপ্লিকেশনটির নতুন সংস্করণ স্থাপনের বিরল ক্ষেত্রে রেডিস ডাটাবেসগুলি ব্যবহার করা যেতে পারে, যেখানে নতুন সংস্করণে বিভিন্ন সত্ত্বার সাথে কাজ করা প্রয়োজন।


1

একক দৃষ্টিতে একাধিক ডাটাবেস ব্যবহার নিম্নলিখিত পরিস্থিতিতে কার্যকর হতে পারে:

একই ডাটাবেসের বিভিন্ন অনুলিপি রিয়েল-টাইম ডেটা ব্যবহার করে উত্পাদন, বিকাশ বা পরীক্ষার জন্য ব্যবহার করা যেতে পারে। লোকে একই উদ্দেশ্য অর্জনের জন্য রেডিস উদাহরণটি ক্লোন করতে প্রতিরূপ ব্যবহার করতে পারে। যাইহোক, পূর্ববর্তী পদ্ধতির বিদ্যমান চলমান প্রোগ্রামগুলির জন্য কেবল সঠিক মোডে স্যুইচ করার জন্য সঠিক ডাটাবেস নির্বাচন করতে সহজ।


1

আমি জানি এই প্রশ্নটি বহু বছরের পুরনো, তবে একাধিক ডাটাবেস কার্যকর হতে পারে তার আরও একটি কারণ রয়েছে।

আপনি যদি আপনার প্রিয় মেঘ সরবরাহকারীর থেকে "ক্লাউড রেডিস" ব্যবহার করেন তবে আপনার সম্ভবত ন্যূনতম মেমরির আকার রয়েছে এবং আপনি যা বরাদ্দ করেন তার জন্য অর্থ প্রদান করবেন। তবে যদি আপনার ডেটাসেটটি এর চেয়ে ছোট হয়, তবে আপনি বরাদ্দের কিছুটা অপচয় করবেন এবং কিছুটা অর্থ অপচয় করবেন।

ডেটাবেস ব্যবহার করে আপনি একই রেডিস ক্লাউড-ইনস্ট্যান্সটি (বলুন) ডেভ, ইউএটি এবং উত্পাদন, বা আপনার অ্যাপ্লিকেশনটির একাধিক উদাহরণ, বা অন্য যে কোনও কিছুর জন্য সরবরাহ করতে পারেন - এইভাবে বরাদ্দ মেমরির আরও বেশি ব্যবহার করে এবং আরও কিছুটা ব্যয় হওয়া - কার্যকর।

আমি যে ব্যবহারের ক্ষেত্রে সন্ধান করছি তাতে একটি অ্যাপ্লিকেশনের বেশ কয়েকটি উদাহরণ রয়েছে যা প্রতিটি 200-300K ব্যবহার করে, তবে আমার ক্লাউড সরবরাহকারীর সর্বনিম্ন বরাদ্দ 1 এম M আমরা সত্যিই কোনও সীমাবদ্ধতা তৈরি না করেই একটি রেডিসে 10 টি উদাহরণ একীভূত করতে পারি, এবং তাই রেডিস হোস্টিং ব্যয়ের 90% সংরক্ষণ করতে পারি। এই পদ্ধতির সাথে সীমাবদ্ধতা এবং সমস্যা রয়েছে বলে আমি প্রশংসা করি, তবে এটি উল্লেখ করার মতো বলে মনে করি।

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