রেডিস কি ডেটা বজায় রাখে?


122

আমি বুঝতে পেরেছি যে রেডিস মেমরি থেকে সমস্ত ডেটা পরিবেশন করে, তবে এটি কি সার্ভার পুনরায় বুট করার পরেও চালিয়ে যায় যাতে সার্ভারটি পুনরায় বুট করার সময় এটি ডিস্ক থেকে সমস্ত ডেটা মেমরিতে পড়ে। অথবা এটি সর্বদা একটি ফাঁকা দোকান যা কেবলমাত্র ডেটা সঞ্চয় করার জন্য যখন অ্যাপসটি অধ্যবসায় নিয়ে চলমান থাকে?


1
আমি আপনার প্রশ্নটি সঠিকভাবে বুঝতে পারছি কিনা তা নিশ্চিত নই। আপনি ডিস্কে স্ন্যাপশট সংরক্ষণ করতে পারেন এবং সেই ফাইলটি থেকে পড়তে পারেন, আপনি যদি এটি না করেন তবে পুনরায় বুট করার সময় আপনার রেডিস ডাটাবেস খালি থাকবে।
সেফা

উত্তর:


81

আমি আপনাকে এই সম্পর্কে http://redis.io/topics/persistance এ পড়ার পরামর্শ দিচ্ছি । আপনি কেবলমাত্র ইন-মেমরি স্টোরেজ ব্যবহার করে পারফরম্যান্স বাড়ানোর সময় মূলত আপনি গ্যারান্টিযুক্ত অধ্যবসায় হারাবেন। এমন একটি দৃশ্যের কল্পনা করুন যেখানে আপনি মেমোরিতে অন্তর্ভুক্ত করেন তবে এটি ডিস্কে স্থির হওয়ার আগে শক্তি হারাতে থাকে। তথ্য ক্ষতি হবে।

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

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


1
আপনি ডিফল্ট অধ্যবসায় আচরণ যুক্ত করতে পারলে দুর্দান্ত হবে। @ লিওনিড বেসচাস্টনি উত্তরটি পছন্দ করুন।
ইয়া

39

রেডিস সার্ভার সময়ে সময়ে তার সমস্ত ডেটা এইচডিডি তে সংরক্ষণ করে, ফলে কিছুটা অধ্যবসায় সরবরাহ করে।

এটি নিম্নলিখিত যে কোনও একটিতে ডেটা সংরক্ষণ করে:

  • সময়ে সময়ে স্বয়ংক্রিয়ভাবে
  • আপনি নিজে কমান্ড কল যখনBGSAVE
  • রেডিস যখন বন্ধ হয়ে যাচ্ছে

তবে রেডিসে ডেটা সত্যই স্থির নয়, কারণ:

  • রেডিস প্রক্রিয়াটির ক্র্যাশ মানে সর্বশেষ সংরক্ষণের পরে সমস্ত পরিবর্তন হারাতে
  • BGSAVE আপনার যদি পর্যাপ্ত ফ্রি র‍্যাম থাকে (অতিরিক্ত র‌্যামের পরিমাণ রেডিস ডিবি আকারের সমান হয়) তবেই অপারেশন সম্পাদন করা যেতে পারে

এনবি: BGSAVE র‌্যামের প্রয়োজনীয়তা একটি বাস্তব সমস্যা, কারণ রেডগুলি চালানোর জন্য আর কোনও র‌্যাম না পাওয়া পর্যন্ত কাজ করে চলেছে, তবে এটি এইচডিডি-তে ডেটা সংরক্ষণ বন্ধ করে দেয় (প্রায় ৫০% র‌্যাম)।

আরও তথ্যের জন্য দেখুন রেডিস অধ্যবসায়


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

15

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

অধ্যবসায়ের বিষয়ে রেডিস ডকুমেন্টেশন অনুসারে সময়ে সময়ে ডিস্কে বা সংক্ষেপে সংক্ষেপে ডেটা সংরক্ষণ করার জন্য আপনার উদাহরণটি সেট আপ করতে পারেন। তারা দুটি কৌশল / পদ্ধতি এওএফ এবং আরডিবি সরবরাহ করে (তারপরে বিশদটি দেখতে ডকুমেন্টেশনটি পড়ুন), আপনি প্রতিটি একা বা একসাথে ব্যবহার করতে পারেন।

যদি আপনি "দৃ pers়তার মতো এসকিউএল" চান, তারা বলেছে:

সাধারণ ইঙ্গিতটি হ'ল পোস্টগ্র্রেএসকিউএল আপনাকে কী সরবরাহ করতে পারে তার তুলনায় আপনি যদি কোনও ডিগ্রি সুরক্ষা চান তবে আপনার উভয় অধ্যবসায় পদ্ধতি ব্যবহার করা উচিত।


7

উত্তরটি হ্যাঁ সাধারণত , তবে একটি পূর্ণাঙ্গ উত্তর সত্যিই নির্ভর করে আপনি কোন ধরণের ডেটা সংরক্ষণ করার চেষ্টা করছেন তার উপর। সাধারণভাবে, আরও সম্পূর্ণ সংক্ষিপ্ত উত্তরটি হ'ল:

  • মূলত পারফরম্যান্স ফোকাস হওয়ায় রেডিস স্থির স্টোরেজের জন্য সেরা ফিট নয়
  • রেডিস নির্ভরযোগ্য ইন-মেমরি স্টোরেজ / বর্তমান রাষ্ট্রের ডেটা ক্যাশে করার জন্য বিশেষত একাধিক ক্লায়েন্ট / সার্ভারগুলিতে ব্যবহৃত ডেটার জন্য কেন্দ্রীয় উত্স সরবরাহ করে স্কেলাবিলিটি অনুমোদনের জন্য সত্যই আরও উপযুক্ত Red

এটি বলার পরে, ডিফল্টভাবে রেডিস ডেটা স্ন্যাপশটগুলি চালিয়ে যাবে একটি পর্যায়ক্রমে বিরতিতে (স্পষ্টত এটি প্রতি 1 মিনিটে হয়, তবে আমি এটি যাচাই করি নি - এটি নীচের নিবন্ধটি দ্বারা বর্ণিত, যা একটি ভাল বেসিক ভূমিকা):

http://qnimate.com/redis-permanent-storage/


টি এল; ডিআর

থেকে সরকারী দস্তাবেজ :

  • আরডিবি অধ্যবসায় [ডিফল্ট] নির্দিষ্ট বিরতিতে আপনার ডেটাসেটের পয়েন্ট ইন-টাইম স্ন্যাপশট সম্পাদন করে।
  • এওএফ অধ্যবসায় [স্পষ্টরূপে কনফিগার করা দরকার] সার্ভারের প্রাপ্ত প্রতিটি লেখার ক্রিয়াকলাপ লগ করে, এটি সার্ভার প্রারম্ভকালে আবার খেলানো হবে, মূল ডাটাবেস পুনর্গঠন করে।

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


5

আপনি একেবারেই কোন অধ্যবসায় বেছে নিতে পারবেন না B সর্বোত্তম পারফরম্যান্স তবে রেডিস বন্ধ হয়ে গেলে সমস্ত ডেটা হারাতে পারে।

রেডিসের দুটি দৃistence়তা প্রক্রিয়া রয়েছে: আরডিবি এবং এওএফ.আরডিবি একটি শিডিয়ুলার গ্লোবাল স্ন্যাপশুটিং ব্যবহার করে এবং এওএফ মাইএসকিউএলের অনুরূপ একটি অ্যাপেপেন্ড-লগ ফাইলের আপডেট লিখেছে।

আপনি এগুলির মধ্যে একটি বা উভয়ই ব্যবহার করতে পারেন Redযখন রিডিস পুনরায় বুট হয়, এটি আরডিবি ফাইল বা এওএফ ফাইলটি পড়া থেকে ডেটা তৈরি করে।

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