রেডিস বনাম স্মৃতিচারণ?


1466

ক্যাচিংয়ের জন্য আমরা রেডিস সার্ভারের সাথে একটি রুবি ওয়েব-অ্যাপ ব্যবহার করছি । পরিবর্তে মেমক্যাচ পরীক্ষা করার কোনও বিন্দু আছে ?

আমাদের আরও ভাল পারফরম্যান্স কী দেবে? রেডিস এবং মেমক্যাচডের মধ্যে কোনও ভাল বা কনস?

বিবেচনা করার বিষয়গুলি:

  • পড়ার / লেখার গতি।
  • স্মৃতি এর ব্যবহার.
  • ডিস্ক আই / ও ডাম্পিং।
  • স্কেলিং।

38
নীচের মন্তব্যগুলি ছাড়াও অন্য একটি বিশ্লেষণ: গুগল ট্রেন্ডস: রেডিস বনাম
মেমক্যাচ করা হয়েছে

3
একটি মন্তব্য যা উত্তরটির নিশ্চয়তা দেয় না: আপনি যদি এই দুটি সিস্টেমের জন্য মেঘ-ভিত্তিক পরিষেবাগুলি দেখেন (যেমন হিরকু অ্যাডনস) মেমক্যাচড পরিষেবাগুলি যে কোনও কারণে এমবি প্রতি বেশ কিছুটা কম সস্তা হয়।
বেন রবার্টস

উত্তর:


2102

সংক্ষিপ্তসার (টিএল; ডিআর)

জুন 3 রা, 2017 আপডেট হয়েছে

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

নতুন যে কোনও কিছুর জন্য, রেডিস ব্যবহার করুন।

মেম্যাচড বনাম রেডিস: সরাসরি তুলনা

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

বিবেচ্য বিষয়

যখন একই জিনিসটির জন্য ব্যবহৃত হয়, তারা এখানে মূল প্রশ্নের "বিবেচনা করার বিষয়গুলি" ব্যবহার করে কীভাবে তুলনা করে:

  • পড়ার / লেখার গতি : উভয়ই অত্যন্ত দ্রুত। বেঞ্চমার্কগুলি কাজের চাপ, সংস্করণ এবং অন্যান্য অনেকগুলি কারণ অনুসারে পরিবর্তিত হয় তবে সাধারণত redis তত দ্রুত বা প্রায় ম্যাকচেড হিসাবে দ্রুত হতে দেখায়। আমি redis এর প্রস্তাব দিই, তবে মেমক্যাচ করা ধীর হওয়ার কারণে নয়। এটা না।
  • স্মৃতি ব্যবহার : রেডিস আরও ভাল।
    • মেমক্যাচড: আপনি ক্যাশের আকার নির্দিষ্ট করেছেন এবং আইটেমগুলি sertোকানোর সাথে সাথে এই আকারের চেয়ে ডেমন দ্রুত বাড়বে more ম্যাকচেড পুনরায় আরম্ভ করার সংক্ষিপ্ততায় সেই জায়গার কোনওটিই দাবি করার সত্যিকারের উপায় নেই। আপনার সমস্ত কীগুলির মেয়াদ শেষ হতে পারে, আপনি ডাটাবেসটি ফ্লাশ করতে পারেন এবং এটি এখনও আপনার দ্বারা কনফিগার করা র‌্যামের সম্পূর্ণ অংশ ব্যবহার করবে।
    • redis: সর্বোচ্চ আকার নির্ধারণ করা আপনার উপর নির্ভর করে। রেডিস এর চেয়ে বেশি কখনই ব্যবহার করবে না এবং এটি আর ব্যবহার না করে আপনাকে মেমরি ফিরিয়ে দেবে।
    • আমি উভয় মধ্যে 100,000 ~ 2KB স্ট্রিং (~ 200MB) সংরক্ষণ করেছি। মেমক্যাচড র‌্যামের ব্যবহার বেড়েছে ~ 225MB। রেডিস র‌্যামের ব্যবহার বেড়েছে ~ 228MB। উভয়কে ফ্লাশ করার পরে, রেডিসগুলি 29MB ডলারে নেমে গেছে এবং মেমাক্যাচ হয়েছে ~ 225MB এ। তারা কীভাবে ডেটা সঞ্চয় করে সে ক্ষেত্রেও তারা দক্ষ, তবে কেবলমাত্র একজন এটি পুনরায় দাবি করতে সক্ষম।
  • ডিস্ক আই / ও ডাম্পিং : রেডিসের জন্য একটি স্পষ্ট জয় যেহেতু এটি ডিফল্টরূপে এটি করে এবং এতে খুব কনফিগারযোগ্য অধ্যবসায় থাকে। তৃতীয় পক্ষের সরঞ্জামগুলি ছাড়াই মেমক্যাচেড ডিস্কে ডাম্প করার কোনও ব্যবস্থা নেই।
  • স্কেলিং : ক্যাশে হিসাবে আপনার একক উদাহরণের চেয়ে বেশি হওয়ার আগে উভয়ই আপনাকে প্রচুর হেডরুম দেয়। রেডিসে আপনাকে এর বাইরে যেতে সাহায্য করার জন্য সরঞ্জামগুলি অন্তর্ভুক্ত রয়েছে যখন মেমক্যাচ করা হয় না।

memcached

মেমক্যাচড একটি সাধারণ উদ্বায়ী ক্যাশে সার্ভার। এটি আপনাকে কী / মান জোড়া সংরক্ষণ করতে দেয় যেখানে মানটি 1MB অবধি স্ট্রিংয়ের মধ্যে সীমাবদ্ধ।

এটি এই সময়ে ভাল, কিন্তু এটি সবই করে। আপনি এই মানগুলিকে অত্যন্ত উচ্চ গতিতে তাদের কী দ্বারা অ্যাক্সেস করতে পারেন, প্রায়শই উপলব্ধ নেটওয়ার্ক বা মেমরি ব্যান্ডউইথ এমনকি স্যাচুরেট করে।

আপনি যখন মেমচেড পুনরায় চালু করবেন তখন আপনার ডেটা চলে যাবে। এটি একটি ক্যাশে জন্য ভাল। আপনার সেখানে গুরুত্বপূর্ণ কিছু সংরক্ষণ করা উচিত নয়।

আপনার যদি উচ্চ কার্যকারিতা বা উচ্চ প্রাপ্যতার প্রয়োজন হয় তবে তৃতীয় পক্ষের সরঞ্জাম, পণ্য এবং পরিষেবা উপলব্ধ।

redis

রেডিস মেমক্যাচড ক্যান্সারগুলির মতো একই কাজগুলি করতে পারে এবং সেগুলি আরও ভাল করতে পারে।

রেডিস একটি ক্যাশে হিসাবেও কাজ করতে পারে। এটি কী / মান জোড়াও সঞ্চয় করতে পারে। রেডিসে এগুলি এমনকি 512 এমবি পর্যন্ত হতে পারে।

আপনি অধ্যবসায় বন্ধ করতে পারেন এবং এটি আনন্দের সাথে পুনঃসূচনা করার সময়ও আপনার ডেটা হারাবে। আপনি যদি চান আপনার ক্যাশেটি পুনরায় আরম্ভ হয় তবে এটি আপনাকে সেটিও করতে দেয়। আসলে, এটি ডিফল্ট।

এটি অত্যন্ত দ্রুত, প্রায়শই নেটওয়ার্ক বা মেমরি ব্যান্ডউইথ দ্বারা সীমাবদ্ধ।

যদি রেডিস / মেমচেডের একটি উদাহরণ যদি আপনার কাজের চাপের জন্য যথেষ্ট পারফরম্যান্স না করে তবে রেডিস হ'ল পরিষ্কার পছন্দ। রেডিস ক্লাস্টার সমর্থন অন্তর্ভুক্ত এবং উচ্চ প্রাপ্যতা সরঞ্জাম ( redis-sentinel ) ডান "বাক্সে" সঙ্গে আসে। বিগত কয়েক বছরে রেডিস তৃতীয় পক্ষের সরঞ্জামাদির ক্ষেত্রেও স্পষ্ট নেতা হিসাবে আত্মপ্রকাশ করেছে। রেডিস ল্যাবস, অ্যামাজন এবং অন্যদের মতো সংস্থাগুলি অনেকগুলি দরকারী রেডিস সরঞ্জাম এবং পরিষেবাদি সরবরাহ করে। রেডিসের চারপাশের বাস্তুতন্ত্র অনেক বড় larger মেমক্যাচের চেয়ে বৃহত আকারে মোতায়েনের সংখ্যা এখন সম্ভবত বেশি।

রেডিস সুপারসেট

রেডিস ক্যাশের চেয়ে বেশি। এটি একটি ইন-মেমরি ডেটা স্ট্রাকচার সার্ভার। নীচে আপনি রেডিস মেমচেডের মতো একটি সাধারণ কী / মান ক্যাশে হওয়ার বাইরে যা কিছু করতে পারেন তার একটি দ্রুত ওভারভিউ পাবেন। রেডিসের বেশিরভাগ বৈশিষ্ট্য হ'ল মেমচেড জিনিসগুলি করতে পারে না।

নথিপত্র

রেডিস মেমক্যাচের চেয়ে ডকুমেন্টেড। যদিও এটি বিষয়গত হতে পারে, এটি সর্বদা আরও বেশি সত্য বলে মনে হয়।

redis.io একটি দুর্দান্ত সহজে নেভিগেটেড সংস্থান। এটি আপনাকে ব্রাউজারে পুনরায় চেষ্টা করতে দেয় এবং ডক্সের প্রতিটি কমান্ডের সাথে আপনাকে লাইভ ইন্টারেক্টিভ উদাহরণ দেয়।

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

অধ্যবসায়

ডিফল্টরূপে redis স্ন্যাপশ্যাটিং নামে একটি প্রক্রিয়া ব্যবহার করে আপনার ডেটা ডিস্কে স্থির করে। আপনার যদি পর্যাপ্ত র‌্যাম উপলব্ধ থাকে তবে এটি কোনও কার্য সম্পাদনের অবক্ষতি ছাড়াই আপনার সমস্ত ডেটা ডিস্কে লিখতে সক্ষম। এটি প্রায় বিনামূল্যে!

স্ন্যাপশট মোডে এমন সম্ভাবনা রয়েছে যে হঠাৎ ক্র্যাশের ফলে অল্প পরিমাণে হারিয়ে যাওয়া ডেটা হতে পারে। আপনার যদি কোনও ডেটা কখনই হারিয়ে না যায় তা নিশ্চিত করার দরকার হয় তবে চিন্তা করবেন না, আবার এওএফ (কেবলমাত্র ফাইল যুক্ত করুন) মোডের সাহায্যে আপনার পিছনে রয়েছে red এই অধ্যবসায় মোডে এটি লিখিত হওয়ার সাথে সাথে ডিস্কের সাথে সিঙ্ক করা যায়। এটি আপনার ডিস্কটি দ্রুত লিখতে পারে তবে সর্বাধিক লেখার থ্রুটপুট হ্রাস করতে পারে তবে তবুও এটি বেশ দ্রুত হওয়া উচিত।

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

অনেক ডেটা টাইপ

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

স্ট্রিংস ( কমান্ড )

সাধারণ পাঠ্য বা বাইনারি মান যা আকারে 512 এমবি অবধি হতে পারে। এটি একমাত্র ডেটা টাইপ রেডিস এবং ম্যাকচেড শেয়ার, যদিও মেমক্যাচযুক্ত স্ট্রিংগুলি 1MB এর মধ্যে সীমাবদ্ধ।

রেডিস আপনাকে বিটওয়াইজ অপারেশন, বিট-লেভেল ম্যানিপুলেশন, ভাসমান পয়েন্ট ইনক্রিমেন্ট / হ্রাস সমর্থন, রেঞ্জ কোয়েরি এবং মাল্টি-কী অপারেশনগুলির জন্য আদেশ প্রদান করে এই ডেটাটাইপটি লাভবান করার জন্য আরও সরঞ্জাম সরবরাহ করে। মেমক্যাচড এর কোনওটিকে সমর্থন করে না।

স্ট্রিংস সব ধরণের ব্যবহারের ক্ষেত্রে দরকারী, এজন্যই এই ডেটা টাইপের সাথে মেমক্যাচ করা মোটামুটি কার্যকর।

হ্যাশস ( আদেশগুলি )

হ্যাশগুলি কী কী মান স্টোরের মধ্যে একটি মূল মান স্টোরের মতো। তারা স্ট্রিং ক্ষেত্র এবং স্ট্রিংয়ের মানগুলির মধ্যে ম্যাপ করে। ক্ষেত্র-> একটি হ্যাশ ব্যবহার করে মান মানচিত্রগুলি নিয়মিত স্ট্রিংগুলি ব্যবহার করে কী-> মান মানচিত্রের চেয়ে কিছুটা বেশি দক্ষ দক্ষতার সাথে থাকে।

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

একটি হ্যাশ ব্যবহারের একটি উদাহরণ অ্যাপ্লিকেশনগুলির মধ্যে ব্যবহারকারীর প্রোফাইলগুলি সংরক্ষণ করার জন্য। কী হিসাবে ব্যবহারকারী আইডিতে একটি রেডিস হ্যাশ সঞ্চিত হয় যা আপনাকে কোনও একক কী এর অধীনে সংরক্ষণের সময় প্রয়োজন হিসাবে ব্যবহারকারী সম্পর্কে অনেকগুলি বিট সংরক্ষণ করতে দেয়। স্ট্রিংয়ে প্রোফাইলটি সিরিয়াল করার পরিবর্তে হ্যাশ ব্যবহার করার সুবিধাটি হ'ল আপনি অন্য অ্যাপ্লিকেশনগুলির দ্বারা পরিবর্তিত একটি অ্যাপ্লিকেশনকে ওভাররাইডিং সংক্রান্ত পরিবর্তনগুলির বিষয়ে চিন্তা না করেই ব্যবহারকারীর প্রোফাইলে বিভিন্ন ক্ষেত্রগুলি পড়তে / লিখতে পারেন (যা আপনি যদি বাসি ক্রমিকায়িত করেন তবে ঘটতে পারে তথ্য)।

তালিকা ( আদেশ )

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

রেডিস তালিকার উপার্জনের জন্য অনেকগুলি কমান্ড সরবরাহ করে যার মধ্যে পপ / পপ আইটেমগুলি কমান্ড, তালিকার মধ্যে ধাক্কা / পপ, সংক্ষিপ্ত তালিকাগুলি, পরিসীমা অনুসন্ধান করা ইত্যাদি including

তালিকা দুর্দান্ত টেকসই, পারমাণবিক, সারি তৈরি করে। এগুলি কাজের সারি, লগ, বাফার এবং অন্যান্য অনেকগুলি ব্যবহারের ক্ষেত্রে দুর্দান্ত।

সেট ( কমান্ড )

সেটগুলি অনন্য মানের মানহীন সংগ্রহ are সেগুলি আপনাকে মানটি সেটে রয়েছে কিনা তাড়াতাড়ি পরীক্ষা করতে, দ্রুত মানগুলি যুক্ত / মুছে ফেলার এবং অন্যান্য সেটের সাথে ওভারল্যাপ পরিমাপ করার জন্য অনুকূলিত হয়।

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

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

সাজানো সেট ( কমান্ড )

সাজানো সেটগুলিও অনন্য মূল্যবোধের সংগ্রহ। এইগুলি যেমন নামটি থেকে বোঝা যাচ্ছে, অর্ডার করা হয়েছে। এগুলি একটি স্কোর দ্বারা অর্ডার করা হয়, তারপরে ডিক্টিকোলিকভাবে।

এই ডেটা টাইপ স্কোর দ্বারা দ্রুত দেখার জন্য অনুকূলিত করা হয় এর মধ্যে সর্বাধিক, সর্বনিম্ন, বা মানগুলির যে কোনও ব্যাপ্তি পাওয়া অত্যন্ত দ্রুত।

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

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

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

জিও

রেডিসের ভৌগলিক ডেটা সংরক্ষণ, পুনরুদ্ধার এবং পরিমাপের জন্য বেশ কয়েকটি আদেশ রয়েছে । এর মধ্যে ব্যাসার্ধের কোয়েরি এবং পয়েন্টগুলির মধ্যে দূরত্ব পরিমাপ করা অন্তর্ভুক্ত।

রেডিসে প্রযুক্তিগতভাবে ভৌগলিক ডেটাগুলি সাজানো সেটগুলির মধ্যে সংরক্ষণ করা হয়, সুতরাং এটি সত্যই পৃথক ডেটা ধরণের নয়। বাছাই করা সেটগুলির শীর্ষে এটি একটি এক্সটেনশনের বেশি।

বিটম্যাপ এবং হাইপারলগলগ

জিওর মতো, এগুলি সম্পূর্ণ পৃথক ডেটা ধরণের নয়। এগুলি হ'ল আদেশগুলি যা আপনাকে স্ট্রিং ডেটার সাথে এমন আচরণ করতে দেয় যেন তা হয় বিটম্যাপ বা হাইপারলগ্লগ।

বিটম্যাপগুলি হ'ল বিট-লেভেল অপারেটরগুলির জন্য আমি উল্লেখ করেছি Strings। এই ডেটা টাইপটি ছিল reddit- র সাম্প্রতিক সহযোগী শিল্প প্রকল্পের জন্য প্রাথমিক বিল্ডিং ব্লক: r / স্থান

হাইপারলগলগ আপনাকে চমকপ্রদ নির্ভুলতার সাথে প্রায় সীমাহীন অনন্য মান গণনা করতে একটি ধ্রুবক খুব অল্প পরিমাণে স্থান ব্যবহার করতে দেয়। কেবলমাত্র ১K কেবি ব্যবহার করে আপনি দক্ষতার সাথে আপনার সাইটে অনন্য দর্শকদের সংখ্যা গণনা করতে পারেন, যদিও সংখ্যাটি কয়েক মিলিয়নতে রয়েছে।

লেনদেন এবং পারমাণবিকতা

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

রিলেশনাল ডাটাবেসে লেনদেনের মতো না হলেও, রেডিসের এমন লেনদেনও রয়েছে যা "আশাবাদী লকিং" ( ওয়াচ / মাল্টি / এক্সেক ) ব্যবহার করে।

পাইপলাইনিং

রেডিস ' পাইপলাইনিং ' নামে একটি বৈশিষ্ট্য সরবরাহ করে । যদি আপনার কাছে অনেকগুলি রেডিস কমান্ড থাকে তবে আপনি কার্যকর করতে চান আপনি পাইপলাইনিং ব্যবহার করে একবারে একবারে পরিবর্তে একবারে পুনরায় পাঠাতে পারেন।

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

এটি আপনাকে বাল্ক আমদানি বা প্রচুর কমান্ড জড়িত এমন অন্যান্য ক্রিয়াকলাপে আরও বৃহত্তর থ্রুপুট অর্জন করতে দেয়।

প্রকা / সদ

রেডিসের কাছে পাব / সাব কার্যকারিতাতে উত্সর্গীকৃত কমান্ড রয়েছে , রেডিসকে একটি উচ্চ গতির বার্তা সম্প্রচারক হিসাবে কাজ করার অনুমতি দেয়। এটি একটি একক ক্লায়েন্টকে চ্যানেলে সংযুক্ত অন্যান্য অনেক ক্লায়েন্টের কাছে বার্তা প্রকাশের অনুমতি দেয়।

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

লুয়া স্ক্রিপ্টিং

আপনি রিডিসের নিজস্ব এসকিউএল বা সঞ্চিত প্রক্রিয়াগুলির মতো লুয়া স্ক্রিপ্টগুলি সম্পর্কে ভাবতে পারেন । এটি এর চেয়ে কম এবং কম উভয়ই, তবে সাদৃশ্যটি বেশিরভাগ ক্ষেত্রেই কাজ করে।

হয়তো আপনার কাছে জটিল গণনা রয়েছে যা আপনি redis করতে চান। হতে পারে আপনি আপনার লেনদেনগুলি ফিরিয়ে আনতে পারবেন না এবং কোনও জটিল প্রক্রিয়ার প্রতিটি পদক্ষেপ পারমাণবিকভাবে ঘটবে তার গ্যারান্টি দরকার। এই সমস্যাগুলি এবং আরও অনেকগুলি লুয়া স্ক্রিপ্টিং দিয়ে সমাধান করা যেতে পারে।

পুরো স্ক্রিপ্টটি পরমাণুভাবে কার্যকর করা হয়, সুতরাং আপনি যদি লুয়া স্ক্রিপ্টে আপনার যুক্তিটি ফিট করতে পারেন তবে আপনি প্রায়শই আশাবাদী লকিং লেনদেনের সাথে ঝামেলা এড়াতে পারেন।

আরোহী

উপরে উল্লিখিত হিসাবে, redis ক্লাস্টারিংয়ের সমর্থনে অন্তর্নির্মিত অন্তর্ভুক্ত এবং এটি নিজস্ব উচ্চ প্রাপ্যতা সরঞ্জাম বলে বান্ডিল রয়েছে redis-sentinel

উপসংহার

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

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

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

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


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

2
"আশাবাদী লকিংয়ের সাথে লেনদেন (ওয়াচ / মাল্টি / এক্সইসি)" - রেডিসের কোনও সঠিক লেনদেন নেই। অর্থাৎ যদি [মাল্টি, সেমিডি 1, সেমিডি 2, সেমিডি 3 (ব্যতিক্রম), এক্সিকিউট] তারপর সেমিডি 1 এবং সেমিডি 2 কার্যকর করা হবে।
ওলেগ

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

3
আপনি উত্তর দিচ্ছেন অতিরিক্ত সরঞ্জাম দ্বারা মেমচেডের ক্লাস্টার "সমর্থন" সক্ষম করার জন্য আপডেট করা উত্তর। আরও ভাল গবেষণা করা উচিত ছিল।
কার্ল জুলাউফ

3
কাউচবেস সার্ভারের সাথে গুচ্ছ গুচ্ছ কীভাবে? (মেমচেড সামঞ্জস্যপূর্ণ)
কেন লিউ

142

Redis ব্যবহার করুন

  1. আপনার পছন্দসইভাবে ক্যাশে মোছা / মেয়াদ শেষ হওয়া আইটেমগুলি প্রয়োজন। (তোমার এটা দরকার আছে)

  2. আপনার একটি নির্দিষ্ট ধরণের কীগুলি জিজ্ঞাসা করার ক্ষমতা প্রয়োজন। EQ। 'ব্লগ 1: পোস্ট: *', 'ব্লগ 2: বিভাগ: xyz: পোস্ট: *'। ও আচ্ছা! এই অত্যন্ত গুরুত্বপূর্ণ. নির্দিষ্ট ধরণের ক্যাশেড আইটেমগুলি নির্বাচন করে অবৈধ করতে এটি ব্যবহার করুন। আপনি এটি ফ্রেমমেন্ট ক্যাশে, পৃষ্ঠা ক্যাশে, প্রদত্ত প্রকারের কেবল এআর অবজেক্টস ইত্যাদিকেও অবৈধ করতে ব্যবহার করতে পারেন etc.

  3. অধ্যবসায় (আপনার এটিরও প্রয়োজন হবে, যদি না আপনি প্রতিটি পুনরায় আরম্ভ করার পরে আপনার ক্যাশে গরম করে ফেলতে ঠিক না হন objects অবজেক্টের জন্য খুব প্রয়োজনীয় যা খুব কমই পরিবর্তিত হয়)

মেমচেড ব্যবহার করুন

  1. মেমক্যাচড আপনাকে মাথাব্যথা দেয়!
  2. আম্মু ... গুচ্ছ? Meh। আপনি যদি এতদূর যেতে চান তবে টুকরোগুলি এবং এআর অবজেক্টগুলি ক্যাশে করার জন্য বার্নিশ এবং রেডিস ব্যবহার করুন।

আমার অভিজ্ঞতা থেকে রেডিসের সাথে মেমক্যাচডের চেয়ে আমার অনেক ভাল স্থিতিশীলতা ছিল


7
রেডিস ডকুমেন্টেশন বলছে যে নিদর্শনগুলি ব্যবহারের জন্য একটি টেবিল স্ক্যান প্রয়োজন। ব্লগ 1: পোস্ট: * কোনও ও (এন) টেবিল স্ক্যানের প্রয়োজন হতে পারে। অবশ্যই, এটি এখনও যুক্তিসঙ্গত আকারের ডেটা সেটগুলিতে দ্রুত, কারণ রেডিস দ্রুত। এটি পরীক্ষা বা প্রশাসকের জন্য ঠিক আছে should
উইস্টি

182
মাথা ব্যথা কৌতুক, তাই না? :-) আমি মেমক্যাচড মাথাব্যথার জন্য গুগল করেছি তবে যুক্তিসঙ্গত কিছু পাইনি। (আমি
মেমকেচেড

11
ভোট নিচে @pellucide চেয়ে একই কারণে। রেডিস মেমক্যাচডের চেয়ে ভাল হতে পারে তবে মেমক্যাচ ব্যবহার করা তুচ্ছ। এটির সাথে আমার কখনই সমস্যা হয়নি এবং এটি কনফিগার করা তুচ্ছ।
দিয়াগো জ্যানসিক

5
আমার দিনটি তৈরি করার জন্য @ কাজম্যাগনাসকে ধন্যবাদ জানাই .. সম্ভবত আমার পুরো সপ্তাহ 😂
অ্যালেক্স

@ ডিগোজ্যানিক রেডিস ব্যবহারের অন্যতম সর্বাধিক সহজ প্রযুক্তি। রেডিসের পূর্বের কোনও জ্ঞান ছাড়াই মেঘের প্যাকেজ ম্যানেজার ব্যবহার করে উবুন্টুতে এটি ইনস্টল করতে এবং সাধারণ জিজ্ঞাসা করা শুরু করতে আমার কেবল 20 মিনিট সময় লেগেছে। 4 ঘন্টা পরে লুয়া স্ক্রিপ্ট ব্যবহার করে ব্যাচ সন্নিবেশ এবং পারফরম্যান্সের উন্নতির জন্য ডান (এনআইও) জাভা লাইব্রেরি নির্বাচন করে আরও জটিল পরিস্থিতি পোক করতে পারি। আমি রেডিসের চেয়ে আরও বন্ধুত্বপূর্ণ এবং সাধারণ কিছু ব্যবহার করতে পারি না।
মুজ অন লুজ

105

মেমক্যাচড মাল্টিথ্রেড এবং দ্রুত।

রেডিসের প্রচুর বৈশিষ্ট্য রয়েছে এবং এটি খুব দ্রুত, তবে এটি কোনও ইভেন্ট লুপের উপর ভিত্তি করে পুরোপুরি একটি কোরের মধ্যে সীমাবদ্ধ।

আমরা উভয় ব্যবহার। মেমক্যাচ মূলত ডেটাবেসগুলিতে পঠন বোঝা হ্রাস করার জন্য, ক্যাচিং অবজেক্টগুলির জন্য ব্যবহৃত হয়। রেডিসগুলি সাজানো সেটগুলির মতো জিনিসের জন্য ব্যবহৃত হয় যা সময়-সিরিজের ডেটা রোল আপ করার জন্য কার্যকর।


2
হাই-ট্র্যাফিক সাইটগুলি যা মেমচেডে প্রচুর পরিমাণে বিনিয়োগ করা হয় এবং "ইউজার প্রোফাইলে" ডিবি বাধা রয়েছে- যেমনটি অপ -সম্পর্কযুক্ত ডেটার মতো স্বাভাবিক মোঙ্গো, রেডিসের সাথে সমান্তরালে কাউচবেসকে মূল্যায়ন করা উচিত

2
@ সিলিকনরোক স্টার - রেডিস 3 এখনও সিঙ্গল কোরের বেশ নিশ্চিত; কমপক্ষে এডাব্লুএস রেডিস (যা 3.2.6 বা 3.2.10 ব্যবহার করে) উদাহরণ হিসাবে ইঞ্জিনকিপিউলাইজেশন মেট্রিক্সগুলি
ডাব্যান্ডারসন

1
দেখে মনে হচ্ছে আপনি ঠিকই আছেন, আমি মনে করি আমি যখন মন্তব্যটি করেছি তখন আমি এটি অসম্পূর্ণ উত্সগুলিতে ভিত্তি করেছিলাম। মুছে ফেলা মন্তব্য।
সিলিকনরॉकস্টার 20

তবে আপনি এখনও রেডিসের $ কোর_কাউন্টের উদাহরণগুলি চালু করতে পারেন
ইমাস্কার

2
রেডিস চূড়ান্তভাবে দক্ষতার দিকে মনোনিবেশিত - তাই আপনাকে নিজেকে জিজ্ঞাসা করতে হবে যে স্মার্ট বিকাশকারীদের একগুচ্ছ কেন এটি একক থ্রেডযুক্ত রাখতে বেছে নিয়েছে? রেডিস ডক্স থেকে "এটি খুব ঘন ঘন হয় না যে সিপিইউ রেডিসের সাথে আপনার বাধা হয়ে দাঁড়ায়, সাধারণত রেডিস হয় মেমরি বা নেটওয়ার্কের সাথে আবদ্ধ"। আপনি যদি কোনও গ্রুটি সার্ভার ব্যবহার করেন যা সিপিইউ আবদ্ধ ছিল, তবে আপনার সম্ভবত অনেক ব্যবহারকারী থাকতে পারে এবং যাইহোক একাধিক রিডানড্যান্ট সার্ভার থাকা উচিত। আপনি যদি কোনও একক সার্ভারে একাধিক সিপিইউ সর্বাধিক করতে চান তবে বিভাজনটি ব্যবহার করুন। পড়ুন: redis.io/topics/…
রোবোকট

91

ইতিমধ্যে স্বীকৃত উত্তরের মন্তব্য হিসাবে পোস্ট করা এটি অনেক দীর্ঘ, সুতরাং আমি এটিকে পৃথক উত্তর হিসাবে রেখেছি

একটি বিষয় বিবেচনা করতে হবে তা হল আপনার ক্যাশে দৃষ্টান্তের জন্য আপনার হার্ড মেমরির সীমাবদ্ধতা থাকা উচিত কিনা।

যেহেতু রেডিস হ'ল টন বৈশিষ্ট্যযুক্ত একটি নোসকিএল ডাটাবেস এবং ক্যাশে কেবল একটি বিকল্প এটির জন্য ব্যবহার করা যেতে পারে তাই এটি মেমরির প্রয়োজনীয়তা যেমন বরাদ্দ করে - আপনি এটিতে যত বেশি বস্তু রাখবেন তত বেশি মেমরি ব্যবহার করে। maxmemoryবিকল্প কঠোরভাবে না পড়ে মেমরি সীমা ব্যবহার enforces। আপনি যখন ক্যাশে কাজ করেন, কীগুলি উচ্ছেদ এবং মেয়াদোত্তীর্ণ হয়; সম্ভাবনাগুলি হ'ল আপনার কীগুলি সব একই আকার নয়, তাই অভ্যন্তরীণ মেমরি বিভাজন ঘটে।

ডিফল্টরূপে রেডিস জেমলোক মেমোরি বরাদ্দকারীকে ব্যবহার করে , যা মেমোরি-কমপ্যাক্ট এবং দ্রুত উভয়ই হওয়ার জন্য সর্বোত্তম চেষ্টা করে তবে এটি একটি সাধারণ উদ্দেশ্যে মেমরির বরাদ্দকারী এবং এটি প্রচুর পরিমাণে বরাদ্দ এবং অবজেক্ট পিউরিং ঘটায় একটি উচ্চ হারে ধরে রাখতে পারে না। এর কারণে, কিছু লোড প্যাটার্নগুলিতে পুনরায় প্রক্রিয়া অভ্যন্তরীণ খণ্ডের কারণে স্পষ্টতই মেমরি ফাঁস হতে পারে। উদাহরণস্বরূপ, যদি আপনার 7 গিগাবাইট র‌্যাম সহ একটি সার্ভার থাকে এবং আপনি যদি অলস অবসরপ্রাপ্ত এলআরইউ ক্যাশে হিসাবে পুনরায় redis ব্যবহার করতে চান তবে আপনি দেখতে পাচ্ছেন যে সময়ের সাথে maxmemoryসাথে 5Gb সেট করে রেডিস প্রক্রিয়াটি আরও এবং আরও মেমরি ব্যবহার করবে, অবশেষে সম্পূর্ণ র‌্যামের সীমাটি হিট করে স্মৃতিহীন হত্যাকারী হস্তক্ষেপ করে।

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

এই কথাটি বলে, মেমক্যাচড এখনও পরিবেশে একটি শক্ত অবস্থান রয়েছে, যেখানে মেমরির ব্যবহার প্রয়োগ করতে হবে এবং / অথবা অনুমানযোগ্য হতে হবে। আমরা সর্বশেষ স্থিতিশীল redis (2.8.19) 10-15k / s এর কাজের চাপে ড্রপ-ইন অ-অবিচ্ছিন্ন এলআরই-ভিত্তিক ম্যাকচেড প্রতিস্থাপন হিসাবে ব্যবহার করার চেষ্টা করেছি এবং এটি মেমরি একটি লট ফাঁস করে; একই কাজের কারণে একই কারণে ভারতে অ্যামাজনের ElastiCache redis উদাহরণগুলি একদিনে ক্র্যাশ করা হয়েছিল।


2
Redis.io/topics/faq থেকে : রেডিস অন্তর্নির্মিত সুরক্ষা ব্যবহারকারীর মেমরির ব্যবহারের সর্বাধিক সীমা নির্ধারণ করতে সক্ষম করেছে, কনফিগার ফাইলে ম্যাক্সেমরি বিকল্পটি ব্যবহার করে মেমরির সীমাবদ্ধতা রেডিস ব্যবহার করতে পারে। যদি এই সীমাটি পৌঁছে যায় তবে রেডিস কমান্ড লিখতে ত্রুটির সাথে জবাব দিতে শুরু করবে (তবে কেবল পঠনযোগ্য কমান্ডগুলি স্বীকার করতে থাকবে), অথবা আপনি যখন রিডিস ব্যবহার করছেন সর্বাধিক মেমরির সীমা পৌঁছেছে তখন আপনি কীগুলি উচ্ছেদে কনফিগার করতে পারেন can ক্যাচিংয়ের জন্য যদি আপনি রেডিসকে এলআরইউ ক্যাশে হিসাবে ব্যবহার করার পরিকল্পনা করেন তবে আমাদের কাছে ডকুমেন্টেশন রয়েছে। লিঙ্ক
স্টিফ্যানচঞ্চ

8
@ স্টেফানচ রিডিস maxmemoryবিকল্পটি অভ্যন্তরীণ মেমরি বিভাজনের জন্য অ্যাকাউন্ট করে না। বিস্তারিত জানার জন্য উপরে আমার মন্তব্যটি দেখুন - আমি যে সমস্যাগুলি বর্ণনা করেছি সেগুলি মেমরি সীমাবদ্ধকরণ বিকল্পগুলি সক্ষম করে "রেডিস একটি এলআরইউ ক্যাশে হিসাবে" পৃষ্ঠাতে বর্ণিত দৃশ্যের অধীনে দেখা গেছে। অন্যদিকে, মেমচেড মেমোরি খণ্ডের সমস্যা এড়াতে বিভিন্ন পদ্ধতির ব্যবহার করে, তাই এর মেমরির সীমা আরও অনেক বেশি "শক্ত"।
আরটিম

46

মেমক্যাচ করা একটি সাধারণ কী / মান স্টোর হিসাবে ভাল এবং কী => STRING করা ভাল। এটি সেশন স্টোরেজের জন্য এটি সত্যই ভাল করে তোলে।

রেডিস কী => SOME_OBJECT করতে ভাল।

এটি সেখানে আপনি কী স্থাপন করতে যাচ্ছেন তার উপর নির্ভর করে। আমার বুঝতে পারফরম্যান্সের দিক থেকে তারা বেশ সমান they

এছাড়াও কোনও উদ্দেশ্যমূলক মানদণ্ড সন্ধানের জন্য শুভকামনা, যদি আপনি কিছুটা দয়া করে আমার পথে পাঠান তবে my


2
আইএমও রেডিস হ্যাশ ডেটা টাইপ মেমচেড স্ট্রিংয়ে সিরিয়ালকরণের চেয়ে সেশন ভেরিয়েবলগুলি সংরক্ষণ করার জন্য আরও অনেক বেশি অর্থবোধ করে।
কার্ল জুলাউফ

6
যদি আপনি ব্যবহারকারীর অভিজ্ঞতা সম্পর্কে যত্নশীল হন তবে আপনার সেশনগুলি ক্যাশে রাখবেন না। dormando.livej
पत्रकार.

4
@ সিবলব্ল্যাঙ্ক এটি তাত্ত্বিকভাবে রেডিসের সাথে সমস্যা হওয়া উচিত নয় যদিও ডিস্কের অবিচলতাও রয়েছে।
haknick

2
@ সেবলব্ল্যাঙ্ক মেমক্যাচটি সেশন স্টোরেজে আপনি এখনও এটি খারাপভাবে প্রয়োগ করেছেন বা না প্রয়োগে ভাল। হ্যাঁ উচ্ছেদ একটি সমস্যা তবে তা দুর্গম নয়, এছাড়াও আপনি উচ্ছেদের বিষয়ে চিন্তা না করলে এটি মেমকেশের সমস্যা নয়। বেশিরভাগ মেমক্যাশে সেশন সমাধানগুলি আমার বিশ্বাস ব্যাকআপ হিসাবে কুকি ব্যবহার করে।
এরিক পিটারসেন

11
"আপনার সেশনগুলি ক্যাশে রাখবেন না" বিভ্রান্তিকর। আপনি যা বলতে চাইছেন তা হল "কেবলমাত্র আপনার সেশনগুলি ক্যাশে সংরক্ষণ করবেন না"। যে কেউ মেমচেতে গুরুত্বপূর্ণ ডেটা সঞ্চয় করে তাকে অবিলম্বে বরখাস্ত করা উচিত।
জ্যাকব

37

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

জিনিসগুলিকে কিছুটা বিভ্রান্ত না করে কোনও মানদণ্ডের লিঙ্ক সম্পূর্ণ হয় না, তাই ডরমন্ডোর লাইভ জার্নাল এবং অ্যান্টেরেজ ওয়েব্লগে কিছু বিবাদমান মানদণ্ডগুলিও দেখুন

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


9
Redis বনাম memcached বেঞ্চমার্ক অসুস্থ ভাবা হয়। oldblog.antirez.com/post/redis-memcached-benchmark.html
অ্যাপ কাজ

28
আপনি ক্রেস সম্পর্কে মজা করছেন না।
অক্টোডো

1
এটির 2010 এরও বেশি, পুরানো ব্লগ
সিদ্ধার্থ

24

আমি যে ক্যাসিং প্রক্সিটিতে কাজ করেছি তাতে মেমক্যাচড এবং পুনরায় উভয়কেই ব্যবহার করার সুযোগ পেয়েছি, আমি যেখানে আপনাকে ঠিক সেখানে ব্যবহার করেছি এবং এর পিছনে কী যুক্তি ব্যবহার করেছি ...

রেডিস>

1) ক্লাস্টারের উপর দিয়ে ক্যাশে সামগ্রী সূচীকরণের জন্য ব্যবহৃত হয়। রেডিস ক্লাস্টারে ছড়িয়ে আমার বিলিয়নেরও বেশি কী রয়েছে, রেডিস রেসপন্সের সময়গুলি বেশ কম এবং স্থিতিশীল।

২) মূলত এটি একটি কী / মানের দোকান, তাই আপনার অ্যাপ্লিকেশনটিতে যেখানে কখনও আপনার অনুরূপ কিছু রয়েছে, সেখানে কেউ খুব বিরক্তিকর অবস্থায় রেডিস ব্যবহার করতে পারেন।

3) অবিরাম অবিচ্ছিন্নতা, ব্যর্থতা এবং ব্যাকআপ (এওএফ) আপনার কাজটিকে আরও সহজ করে দেবে।

মেমকেচে>

1) হ্যাঁ, একটি অনুকূলিত মেমরি যা ক্যাশে হিসাবে ব্যবহার করা যেতে পারে। আমি এটি 1 এমবি এর চেয়ে কম আকারের (50 হিট / সেকেন্ড সহ) খুব ঘন ঘন (50 হিট / সেকেন্ড সহ) ক্যাশে সামগ্রী সংরক্ষণ করার জন্য ব্যবহার করেছি।

2) আমি যখন আমার একক সামগ্রীর আকার> 1 এমবি ছিল তখন আমি মেমচেডের জন্য 16 গিগাবাইটের মধ্যে কেবল 2 জিবি বরাদ্দ করেছি।

3) বিষয়বস্তু সীমাবদ্ধতার কাছে বাড়ার সাথে সাথে মাঝে মাঝে আমি পরিসংখ্যানগুলিতে উচ্চ প্রতিক্রিয়ার বার পর্যবেক্ষণ করেছি (রেডিসের ক্ষেত্রে নয়)।

যদি আপনি সামগ্রিক অভিজ্ঞতার জন্য জিজ্ঞাসা করেন তবে কনফিগার করা সহজ হওয়ায় রেডিস অনেকগুলি সবুজ, স্থিতিশীল শক্তিশালী বৈশিষ্ট্যগুলির সাথে অনেক নমনীয়।

এছাড়াও, এই লিঙ্কটিতে একটি বেঞ্চমার্কিং ফলাফল উপলব্ধ রয়েছে , নীচে এর থেকে কয়েকটি হাইগলাইট রয়েছে,

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

আশাকরি এটা সাহায্য করবে!!


14

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

আমার বর্তমান সংস্থার সাথে রেডিস প্রধান ক্যাশে হিসাবে ব্যবহৃত হয়েছিল। যখন আমি কিছু পারফরম্যান্সের পরিসংখ্যান খনন করি এবং কেবল পরীক্ষা শুরু করি, তখন রেডিস পারফরম্যান্সের দিক থেকে, মাইএসকিউএলের তুলনায় তুলনীয় বা ন্যূনতম ধীর ছিল।

সহজ সরল হলেও মেমচেড রেডিসকে পুরোপুরি জল থেকে বের করে দিয়েছে । এটি আরও ভালভাবে মাপা হয়েছে:

  • বড় মানগুলির জন্য (স্ল্যাব আকারে প্রয়োজনীয় পরিবর্তন, তবে কাজ করা)
  • একাধিক সমবর্তী অনুরোধের জন্য

এছাড়াও, মেমক্যাচড উচ্ছেদের নীতিটি আমার দৃষ্টিতে, আরও কার্যকরভাবে প্রয়োগ করা হয়েছে, যার ফলে ক্যাশে হ্যান্ডেল করতে পারে তার চেয়ে বেশি ডেটা পরিচালনা করার সময় সামগ্রিকভাবে আরও স্থিতিশীল গড় প্রতিক্রিয়া সময় হয় in

কিছু বেঞ্চমার্কিং প্রকাশ করেছে যে রেডিস, আমাদের ক্ষেত্রে খুব খারাপ কাজ করে। এটি আমার বিশ্বাস অনেকগুলি ভেরিয়েবলের সাথে করা উচিত:

  • আপনি রেডিস চালনা করে এমন ধরণের হার্ডওয়্যার
  • আপনি সঞ্চয় ধরণের ডেটা
  • পায় পরিমাণ এবং সেট
  • আপনার অ্যাপ্লিকেশনটি কতটা সামঞ্জস্যপূর্ণ
  • আপনার কি ডেটা স্ট্রাকচার স্টোরেজ দরকার?

ব্যক্তিগতভাবে, আমি রেডিস লেখকদের সম্মতি এবং মাল্টিথ্রেডিংয়ের মতামতটি ভাগ করি না।


দয়া করে ব্যাখ্যা করুন "মাইএসকিউএল থেকে ন্যূনতম ধীর" "
অনিরুদ্ধ গুপ্ত

ট্রাটি বলতে হবে আমার হাতে এই বেঞ্চমার্ক ডেটা নেই তবে সেই বিশেষ
কেসটি অনেকগুলি

13

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

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

রেডিস ব্যতীত সাধারণত বেশিরভাগ ব্যবহারের ক্ষেত্রে বেশি বৈশিষ্ট্য সমৃদ্ধ এবং এইভাবে নমনীয় হয়ে থাকে বলে উচ্চতর হিসাবে বিবেচিত হয়।


10

এটি ভুল হবে না, যদি আমরা বলি যে redis (ক্যাশে + ডেটা স্ট্রাকচার) এর সংমিশ্রণ এবং মেমক্যাচ করা কেবল একটি ক্যাশে।


1
এটি ভাল উত্তর - লারাভেল রেডিসকে ক্যাশে এবং ডেটা স্টোরেজ মেকানিজম হিসাবে ব্যবহার করছে
মিরোস্লাভ ট্রিনিনিক

8

রেডিস -২.২.২ এবং মেমক্যাচের বিপরীতে ১০০ কে ইউনিক কী এবং মান নির্ধারণ এবং পাওয়ার জন্য একটি খুব সাধারণ পরীক্ষা। উভয়ই লিনাক্স ভিএম (সেন্টোস) এ চলছে এবং আমার ক্লায়েন্ট কোড (নীচে আটকানো) উইন্ডোজ ডেস্কটপে চলছে।

Redis

  • 100000 মান সংরক্ষণ করতে সময় নেওয়া = 18954ms

  • 100000 মান লোড করতে সময় নেওয়া = 18328 মিমি

memcached

  • 100000 মান সংরক্ষণ করতে সময় নেওয়া হয় = 797ms

  • 100000 মান পুনরুদ্ধার করতে সময় নেওয়া = 38984 মিমি


Jedis jed = new Jedis("localhost", 6379);
int count = 100000;
long startTime = System.currentTimeMillis();
for (int i=0; i<count; i++) {
  jed.set("u112-"+i, "v51"+i);
}
long endTime = System.currentTimeMillis();
System.out.println("Time taken to store "+ count + " values is ="+(endTime-startTime)+"ms");

startTime = System.currentTimeMillis();
for (int i=0; i<count; i++) {
  client.get("u112-"+i);
}
endTime = System.currentTimeMillis();
System.out.println("Time taken to retrieve "+ count + " values is ="+(endTime-startTime)+"ms");

6
যেহেতু আপনি স্পষ্টতই পরিমাপের জন্য জাভা ব্যবহার করেছেন .... আপনি কি নিজের পরীক্ষার কেসগুলিকে "উষ্ণ" করেছিলেন? এটি এত অল্প সময়ের জন্য পরিমাপ করা জরুরি ... যেটি হ'ল দাগগুলি সংকলিত করে।
cljk

7

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


6

সবচেয়ে বড় বাকি কারণ বিশেষায়িতকরণ।

রেডিস বিভিন্ন জিনিস প্রচুর করতে পারে এবং এর এক পার্শ্ব প্রতিক্রিয়া হ'ল ডেভেলপাররা একই উদাহরণে those বিভিন্ন বৈশিষ্ট্য সেটগুলির প্রচুর ব্যবহার শুরু করতে পারে। আপনি যদি LRU নয় এমন পাশের হার্ড ডেটা স্টোরেজ সহ ক্যাশের জন্য রেডিসের এলআরইউ বৈশিষ্ট্যটি ব্যবহার করেন তবে মেমরির বাইরে চলে যাওয়া পুরোপুরি সম্ভব।

যদি আপনি সেই নির্দিষ্ট পরিস্থিতি এড়াতে কেবলমাত্র একটি এলআরইউ উদাহরণ হিসাবে ব্যবহার করার জন্য একটি উত্সর্গীকৃত রেডিস উদাহরণ সেটআপ করতে যাচ্ছেন তবে মেমক্যাচড রেডিসকে ব্যবহার করার কোনও জোরালো কারণ নেই।

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


6

আপনি যদি পারফরম্যান্সে আগ্রহী হন তবে মেমক্যাচ দ্রুত হবে, কেবল কারণ রেডিস নেটওয়ার্কিং (টিসিপি কল) জড়িত। এছাড়াও অভ্যন্তরীণভাবে মেমক্যাচ দ্রুত হয়।

রেডিসের আরও বৈশিষ্ট্য রয়েছে কারণ এটি অন্যান্য উত্তর দ্বারা উল্লিখিত ছিল।


6

আমরা রেডিসকে কর্মস্থলে আমাদের প্রকল্পের লোড-টেকঅফ হিসাবে ভেবেছিলাম। আমরা ভেবেছিলাম nginxডাকা একটি মডিউল HttpRedis2Moduleবা অনুরূপ কিছু ব্যবহার করে আমাদের দারুণ গতি হবে তবে এবি-পরীক্ষার সাথে পরীক্ষার সময় আমরা ভুল প্রমাণিত হয়েছি।

মডিউলটি খারাপ বা আমাদের লেআউটটি খারাপ ছিল তবে এটি একটি খুব সাধারণ কাজ এবং পিএইচপি সহ ডেটা নেওয়া এবং তারপরে মন্টোডিবিতে স্টাফ করা আরও দ্রুত ছিল। আমরা এপিসিকে ক্যাচিং-সিস্টেম হিসাবে এবং সেই পিএইচপি এবং মঙ্গোডিবি ব্যবহার করছি। এটি তখন অনেক দ্রুত ছিলnginx রেডিস মডিউলটির ।

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


আকর্ষণীয় উত্তর তবে নিশ্চিত নয় যে এটি ওপিকে সাহায্য করে
স্কট শুলথহস

রেডিসে প্রবেশ করানো এবং এটিকে ক্যাশে হিসাবে ব্যবহার করা এপিসি + পিএইচপি + মঙ্গোডিবি ব্যবহারের চেয়ে ধীর ছিল। তবে রেডিসে কেবল সন্নিবেশ সরাসরি মঙ্গোডিবিতে প্রবেশের চেয়ে ধীর ছিল। এপিসি ব্যতীত আমি মনে করি তারা বেশ সমান।
Ms01

2
এখানেই কারণ মোঙ্গো যদি আপনি কোন নিশ্চয়তা কি আপনি সন্নিবেশিত করেছি দেয় না কখনও ডিস্কে লেখা হতে যাচ্ছে ...
ড্যামিয়েন

21
তবে এটি ওয়েবস্কেল, আপনি লেখার সময় মঙ্গোদব আপনার চারপাশে চেনাশোনাগুলিতে ছড়িয়ে পড়বে। আজকাল আমি কেবল / dev / নালকে লিখি কারণ এটিই দ্রুত।
Ms01

1

রেডিস আরও ভাল।

পেশাদাররা হ'ল Redis,

  1. এতে স্ট্রিং, সেট, সাজানো সেট, হ্যাশ, বিটম্যাপের মতো প্রচুর ডেটা স্টোরেজ অপশন রয়েছে
  2. রেকর্ডের ডিস্ক অধ্যবসায়
  3. সঞ্চিত পদ্ধতি ( LUAস্ক্রিপ্টিং) সমর্থন
  4. PUB / SUB ব্যবহার করে একটি বার্তা ব্রোকার হিসাবে কাজ করতে পারে

যদিও Memcacheএকটি ইন-মেমোরি কী মান ক্যাশে টাইপ সিস্টেম।

  1. বিভিন্ন ডাটা টাইপ স্টোরের জন্য কোনও তালিকা নেই যেমন তালিকা, সেট যেমন রেডিস।
  2. প্রধান কন কন মেমকেচে ডিস্কের অধ্যবসায় নেই।

0

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


0

আমাজন দ্বারা সরবরাহিত সত্যই দুর্দান্ত নিবন্ধ / পার্থক্য এখানে

রেডিস মেমকেচেডের সাথে তুলনা করে একটি স্পষ্ট বিজয়ী।

মেমক্যাচডের জন্য কেবল একটি প্লাস পয়েন্ট এটি মাল্টিথ্রেড এবং দ্রুত। রেডিসের প্রচুর দুর্দান্ত বৈশিষ্ট্য রয়েছে এবং এটি খুব দ্রুত, তবে একটি কোরে সীমাবদ্ধ।

রেডিস সম্পর্কে দুর্দান্ত পয়েন্টস, যা মেমক্যাচে সমর্থিত নয়

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