পিএইচপি-র সবচেয়ে নির্ভরযোগ্য সেশন স্টোরেজটি কী: মেমক্যাস, ডাটাবেস বা ফাইলগুলি? [বন্ধ]


10

পিএইচপি সেশনগুলি হ্যান্ডেল করার সবচেয়ে ভাল এবং সবচেয়ে নিরাপদ উপায় কী। সেশনগুলি সংরক্ষণ করার সর্বোত্তম উপায়:

  1. ডাটাবেস (আরও নির্ভরযোগ্য, তবে উচ্চতর বাধা, ধীর গতি, উচ্চ ডাটাবেস ব্যবহার ওয়েবসাইটের জন্য ভাল নয়)?

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

  3. ফাইল (ডিফল্ট বিকল্প, আমি ধীরে ধীরে অনুমান করি যেহেতু এটি ফাইল I / O, কম সুরক্ষা ইত্যাদি থেকে পড়ে এবং লেখায়)।

কোন পদ্ধতিটি সবচেয়ে ভাল? এই পদ্ধতির প্রত্যেকটির সমস্যা এবং ভাল জিনিসগুলি কী কী?


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

1
@ হাইলেম এই প্রশ্নটি জিজ্ঞাসা করার জন্য এটি সবচেয়ে উপযুক্ত জায়গা, এটি প্রোগ্রামিং নয় এটির প্রোগ্রামিং ধারণাগত সমস্যা,
ব্যবহারকারী 1179459

3
এটি সত্যিই একটি দুর্বল প্রশ্ন কারণ 'সেরা' আপনার নির্দিষ্ট পরিস্থিতিতে নির্ভর করে। ফেসবুকের জন্য 'সেরা' সম্ভবত আপনার ব্যক্তিগত হোম পৃষ্ঠার জন্য 'সেরা' নয়।
গ্র্যান্ডমাস্টারবি

1
@ গ্র্যান্ডমাস্টারবি আমি জানি যে আমি কেন পরিষ্কারভাবে জিজ্ঞাসা করেছি "এই পদ্ধতির প্রত্যেকটির সমস্যা এবং ভাল জিনিসগুলি কী?" আমার জন্য কোনটি সেরা তা খুঁজে বের করতে।
ব্যবহারকারী 1179459

উত্তর:


6

মেমকেচেডে সঞ্চয় করা সবচেয়ে ভাল কারণ আমরা সহজেই অন্যান্য সমস্যাগুলি সমাধান করতে পারি (ক্যাশের আকার, সুরক্ষা ইত্যাদি) easily

ফেসবুক হ'ল ম্যাকচেডের # 1 গ্রাহক। আগ্রহী হলে দয়া করে পড়ুন: http://www.facebook.com/note.php?note_id=39391378919

অন্যান্য সমস্যাগুলি কীভাবে সমাধান করবেন?


4

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

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

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


4

মাইএসকিউএল-তে মেমরি স্টোরেজ ইঞ্জিন ব্যবহার সম্পর্কে কী?

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

আমি এটি একটি ওয়েব অ্যাপ্লিকেশনটিতে প্রচুর পরিসংখ্যানের ডেটা সংরক্ষণ করার জন্য ব্যবহার করছি যা ঘন ঘন পরিবর্তিত হয় তাই এটি সেশন পরিচালনা করার জন্য ব্যবহৃত হয় না তবে আমি মনে করি এটি এই উদ্দেশ্যে উপযুক্ত হওয়া উচিত।


3

এই ব্লগ পোস্টটি ম্যাজেন্টোর সাথে বিভিন্ন সেশন স্টোরেজ ইঞ্জিনগুলির পারফরম্যান্স তুলনার ফলাফল দেখায় এবং তারা মনে করেছে যে প্রায় 75 জন সমকালীন ব্যবহারকারীর মধ্যে সত্যিকারের পারফরম্যান্সের পার্থক্য নেই।

আমি মনে করি যে এই স্তরে (তাদের প্রায় এক সেকেন্ডে প্রায় 5 টি লেনদেন হয়েছিল, যা 12 ঘন্টা সময়কালে প্রায় 430k হিট হবে) ফাইল / ডিবি / মেমকেচে / রেডিস সমস্ত কিছুতেই আপনি যে পারফরম্যান্স সংখ্যা দেখেন তার উপর আধিপত্য রয়েছে যদি সঠিকভাবে ব্যবহার করা হয় তবে ঘাম ছাড়াই ট্র্যাফিক।

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

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

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

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

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


0

এটি আপনার প্রয়োজনের উপর নির্ভর করে।

ফাইল এবং ডাটাবেস স্টোরেজের মধ্যে কিছু পার্থক্য রয়েছে। এই প্রশ্নটি দেখুন ।

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

একদিকে এটি আপনাকে 4Kb এর মধ্যে সীমাবদ্ধ করে, যা আসলে সাধারণত যথেষ্ট (যেহেতু আপনি সাধারণত আইডি সঞ্চয় করতে চান, পুরো বস্তু নয়) তবে আপনি যে সত্যিই উপকার পাবেন তা হ'ল সেশন ক্লিনআপ সম্পর্কে আপনার চিন্তা করার দরকার নেই। আপনি এটি ক্লায়েন্টের উপরে রেখে যান, এটি আসলে হওয়া উচিত।


2
আপনার কুকি পথের বাইরে থাকার জন্য আপনি যদি আপনার স্থিতিশীল সংস্থানগুলি পৃথক না করেন তবে কুকিজ হ'ল প্রতিটি অনুরোধে আপনাকে পরিশোধ করতে হবে tax
জোয়েরি সেব্রেচটস

jQuery এবং বুটস্ট্র্যাপ প্রায় 150kb মিলিত এবং এটি অন্যান্য লাইব্রেরি ছাড়া। কুকি সর্বোচ্চ 4 কেবি, এবং সাধারণত 1 কেবি এর নীচে। যদি না ওপি চরম পরিস্থিতি সম্পর্কে জিজ্ঞাসা করে - তবে এই ধরণের করের বিষয়ে কে চিন্তা করে?
ইয়াম মার্কোভিচ

@ ইয়ামমার্কোভিচের কয়েকটি সমস্যা রয়েছে 1) কুকিগুলি সার্ভারেও চলেছে (ব্যবহারকারীরা সাধারণত ডাউনলোডগুলি দ্রুত ডাউনলোড করে তা আপলোড করতে পারেন) 2) সাধারণত পৃষ্ঠাগুলিতে স্থির ফাইলগুলির জন্য 100 টি অনুরোধ থাকে (চিত্র, জেএস, সিএসএস) যাতে প্রতিটি অনুরোধে এটি 100 কেবিতে যেতে পারে উপরে যাচ্ছেন
মিরো সোভ্রতান

@ মিরোসভ্রতান আপনি যদি ব্যবহারকারীদের প্রতি পৃষ্ঠায় শত শত অনুরোধ প্রেরণ করছেন (তবে এটি কখনই ঘটেছিল?) তবে আপনার জন্য অপ্টিমাইজেশন স্পষ্টতই সমস্যা নয়।
ইয়াম মার্কোভিচ

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

0

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

মেমক্যাচটি আকর্ষণীয় মনে হলেও আমাদের কাছে অনেকগুলি প্রক্রিয়া রয়েছে যা পুরো মেমক্যাচি সাফ করে, তাই ব্যবহারকারীর সেশনগুলি ঘন ঘন ঘন কেটে ফেলা হবে। পুরানো সেশনগুলি মেমরি পূর্ণ হয়ে যাওয়ায় সাফ হয়ে যাবে ... সুতরাং আর স্থায়ী লগইন হবে না।

আমরা শীঘ্রই ডিফল্ট ফাইল-ভিত্তিক সেশনের চেষ্টা করব।

আপনি যদি নিজের সেশন ডেটার সুরক্ষা সম্পর্কে উদ্বিগ্ন হন তবে আপনার সেই ডেটাটি সেশনে রাখা উচিত নয় - এবং সেশনে বিশ্বাস করবেন না - প্রতিটি অনুরোধে ব্যবহারকারীকে বৈধতা দিন।


0

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

এছাড়াও, আপনি মেমক্যাচড ক্লাউডের মতো তৃতীয় পক্ষের পরিষেবাগুলি চেষ্টা করতে পারেন যা অন্তর্নির্মিত প্রতিলিপি এবং স্টোরেজ ইঞ্জিন ক্ষমতা রয়েছে

প্রকাশ, আমি গারন্তিয়া ডেটার সহ-প্রতিষ্ঠাতা এবং সিটিও


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