সরাসরি মেমরি ব্যবহার করে ক্যাশে বনাম রেডিস


141

আমি এখনও রেডিস ব্যবহার করিনি, তবে আমি এটি সম্পর্কে শুনেছি এবং এটি ক্যাশে সংরক্ষণের হিসাবে চেষ্টা করার পরিকল্পনা করেছি।

আমি শুনেছি রেডিস ক্যাশে স্টোরের ডেটাবেস হিসাবে মেমরি ব্যবহার করছে, তাই যদি আমি ডেটা সঞ্চয় করতে কোনও বস্তু বা অভিধানের ডেটাটাইপ হিসাবে কোনও ভেরিয়েবল ব্যবহার করি তবে তার পার্থক্য কী? মত:

var cache = {
    key: {

    },
    key: {

    }
    ...
}

রেডিসের কী লাভ?

উত্তর:


221

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

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

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

  • রেডিস প্রয়োজনে ডিস্কের ডেটা ধরে রাখতে পারে।

  • রেডিস একটি সাধারণ ক্যাশের চেয়ে কিছুটা বেশি: এটি বিভিন্ন ডেটা স্ট্রাকচার, বিভিন্ন আইটেম উচ্ছেদের নীতিমালা, ব্লক করা সারি, পাব / সাব, পারমাণবিকতা, লুয়া স্ক্রিপ্টিং ইত্যাদি সরবরাহ করে ...

  • রেডিস উচ্চ-প্রাপ্যতা প্রয়োগের জন্য তার ক্রিয়াকলাপটিকে মাস্টার / স্লেভ মেকানিজমের সাথে প্রতিলিপি করতে পারে।

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


5
আপনার শেষ পয়েন্টটি বিশেষত এটিকে দেখে মনে হচ্ছে রাইলাইটের মতো কিছুটা অর্থহীন - অভিধানের দোকানটি বেশিরভাগ ব্যবহারের ক্ষেত্রে ঠিক ততটাই উপযুক্ত হবে যেখানে আপনার একক প্রক্রিয়া রয়েছে। এটা কি সঠিক?
nnot101

1
হ্যাঁ. আইএমও রাইটের আগ্রহ বেশ সীমিত।
দিদিয়ের স্পিজিয়া

এই ইঙ্গিতগুলির জন্য ধন্যবাদ, সুতরাং রেডিস স্কেল করতে দুর্দান্ত তবে আমি ধরে নিতে পারি একটি সাধারণ চ্যাটআপের গড় হিসাবে গড়ে 300 - 500 টি স্মৃতি পুনরুদ্ধার করার জন্য অবজেক্ট, ইন-মেমরি ডেটা স্ট্রাকচার খুব ভালভাবে কাজ করবে যদি তত দ্রুত না হয় অল্প সংখ্যক?
ওয়েবউইম্যান

2
@DidierSpezia very large heaps do not perform well with garbage collected languages আপনি কীভাবে ব্যাখ্যা করতে পারেন?
রুটট্রাভেলার

1
@ রুট্র্যাভেলার, আমি বিশ্বাস করি এটি আবশ্যক কারণ আবর্জনা সংগ্রহের প্রক্রিয়াটি সাধারণত হ্যাপের স্মৃতি মুক্ত করতে আপনার অ্যাপ্লিকেশন ("দুনিয়া বন্ধ করুন") কার্যকর করতে বাধা সৃষ্টি করতে পারে, এবং বৃহত্তর স্তূপটি, সাধারণত এই ব্যাঘাত দীর্ঘকাল স্থায়ী হয়।
রেজিস্টারসটিজ

3

বর্তমানে আমরা সার্ভার কম আর্কিটেকচারে আরও আকৃষ্ট যেখানে প্রতিটি অনুরোধ বিভিন্ন ধারক যেতে পারে to এক্ষেত্রে রেডিস খুব গুরুত্বপূর্ণ ভূমিকা নিতে পারে।

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

এই ক্ষেত্রে, আমাদের পুনরায় ব্যবহার করতে হবে কারণ এটি দূরবর্তী স্থানে ক্যাশে সঞ্চয় করে এবং আমরা অ্যাক্সেস করতে পারি যে এমনকি সার্ভারে কম আর্কিটেকচারে ধারক পরিবর্তিত হয়।

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