রেডিসের সাথে সেশনগুলি সংরক্ষণ করা কতটা নিরাপদ?


94

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

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

কেউ কি এরকম সমস্যায় পড়েছেন?


4
যেহেতু রেডিস বলছেন এটির বৈকল্পিক স্থায়িত্ব রয়েছে, তাই আমি বলব যদি আপনি এইচডিডি-তে দৃistence়তা বেছে নেন তবে এটি ব্যবহার করা নিরাপদ। যাইহোক, সেশন ডেটার জন্য - আমি অবশ্যই তাদের র‍্যামে সংরক্ষণ করব (যার অর্থ আমি পুরো অগ্নিপরীক্ষার স্থায়িত্বের অংশটি নিয়ে চিন্তা করব না)। সেশন ডেটা হারাতে আপনার ব্যবহারকারীদের লগ আউট করার পরে সবচেয়ে খারাপ হওয়া উচিত।
এনবি

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

4
আমার মূল উদ্বেগ বিলম্বিত লেখার বিষয়ে, কোনও ব্যবহারকারী যদি লগইন করে এবং সেশনটি দেরি করে লেখা হয় তবে কী হবে তা তাকে পুনঃনির্দেশিত করা হবে তবে লগ ইন করা হয়নি
ট্রেন্ট

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

4
@ বরিসগুয়েরি - এটি যে আমি দ্বিমত পোষণ করি তা নয়, তবে যদি কেউ পারফরম্যান্স বাড়িয়ে তুলতে হয় - কিছু ভুল হয়ে গেলে আপসগুলি তৈরি করতে হবে। হ্যাঁ, ব্যবহারকারীরা হঠাৎ লগ আউট করার পক্ষে এটি অদ্ভুত হবে, এটি নিশ্চিতভাবেই - তবে প্রশ্নটি এটি কতবার ঘটবে বলে আশা করা হয়? যদি বছরে একবার বা দু'বার সমস্ত রেডিস নোড নেমে যায় তবে পুরো ক্লাস্টারটি অনুপলব্ধ থাকাকালীন আমি কয়েক বিচ্ছিন্ন সময়ের জন্য কর্মক্ষমতা হ্রাস করার কোনও কারণ দেখতে পাচ্ছি না। তবে তা কেবল আমিই।
এনবি

উত্তর:


149

রেডিস সেশন সংরক্ষণের জন্য উপযুক্ত perfect সমস্ত অপারেশন মেমরিতে সঞ্চালিত হয়, এবং তাই পড়তে এবং লিখতে দ্রুত হবে।

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

  1. আপনি যদি কোনও সেশন হারাতে না পারেন তবে appendfsync alwaysআপনার কনফিগারেশন ফাইলটিতে সেট করুন। এটির সাহায্যে রেডিস গ্যারান্টি দেয় যে কোনও লিখিত ক্রিয়াকলাপ ডিস্কে সংরক্ষণ করা হয়েছে। অসুবিধাটি হ'ল লেখার কাজগুলি ধীর হবে।
  2. আপনি যদি প্রায় 1s মূল্যবান ডেটা হারাতে ঠিক থাকেন তবে ব্যবহার করুন appendfsync everysec। এটি যুক্তিসঙ্গত ডেটা গ্যারান্টি সহ দুর্দান্ত পারফরম্যান্স দেবে

14

মূলত দুটি প্রধান প্রকার উপলব্ধ: অ্যাসিঙ্ক স্ন্যাপসনট এবং fsync()। তাদের যথাক্রমে আরডিবি এবং এওএফ বলা হয়। আরো সরকারী পৃষ্ঠাতে অধ্যবসায় মোড

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

এওএফ সেটিংসে একটি অ্যাপেনড অলি ফাইল ব্যবহার করা হয় যা সার্ভারের প্রাপ্ত কমান্ডগুলিতে লগ করে এবং সেভ করা ফাইল থেকে ডিবিকে স্ক্র্যাচ থেকে শুরু করে cold ডিফল্ট ডিস্ক-সিঙ্ক নীতিটি প্রতি সেকেন্ডে একবার আই ফ্লাশ করা হয় (আইআইআরসি) তবে প্রতিটি কমান্ডে লক করে লিখতে সেট করা যায়।

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

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


12

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

রিয়েল-টাইম সেশনগুলি প্রয়োগ করতে আপনার কোনও সমস্যা হবে না।

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

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