মেমক্যাচে বনাম সেট যোগ করুন


17

আমি কোনও সংকেত যোগ করতে এবং সেট করার মধ্যে পার্থক্য বুঝতে পারি না? দেখে মনে হয় এডিডি SET অন্তর্ভুক্ত করে বা কিছু আছে যদি ADD মিথ্যা ফেরত দেয় এবং SET কেবল ওভাররাইট করে। ধন্যবাদ!

সম্পাদনা: আমার নির্দিষ্ট প্রশ্নটি হ'ল "আপনি কখন যুক্ত করার চেয়ে সেট বা সেট করার চেয়ে অ্যাড ব্যবহার করবেন?"

উত্তর:


22

আপনি ইতিমধ্যে আপনার প্রথম প্রশ্নের উত্তর পেয়ে গেছেন: উদ্দেশ্যটি ADDকেবল তখনই কাজ করা হয় যখন কোনও কীটি ইতিমধ্যে উপস্থিত না থাকে, যখন SETমানটি আপডেট করার জন্য থাকে তবে তা ইতিমধ্যে বিদ্যমান কিনা তা নির্বিশেষে। আপনি যদি এসকিউএল এর সাথে পরিচিত হন তবে এটি (মোটামুটিভাবে) INSERTকোয়েরি ( ADD) এবং UPDATE( SET) এর মধ্যে পার্থক্যের মতো ।

আপনার সংযোজন সম্পর্কিত প্রশ্নের সাথে সম্পর্কিত, আপনি যে কোনও একটি আপনার উদ্দেশ্য অনুসারে ব্যবহার করবেন। আমি বলব যে SETএটি আরও সাধারণ অপারেশন হবে, কারণ এটি আরও সাধারণ যে আপনি কেবল বলতে চান "আমি কীটির fooমান রাখতে চাই bar, এবং এটি ইতিমধ্যে সেখানে ছিল কিনা" সে বিষয়ে আমার কোন চিন্তা নেই। তবে, (কম ঘন ঘন) উপলক্ষ্য হবে যখন এটি জানা দরকার যে কোনও চাবি ইতিমধ্যে ক্যাশে নেই।

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


1
আমি এখানে কিছুটা নিটপিকিং করতে পারি, তবে এসকিউএল এর সাথে আপনার তুলনায় যদি "সংযুক্তি" INSERT এর সাথে তুলনা করা হয়, তবে "সেট" আপডেটের পরিবর্তে প্রতিস্থাপনের সাথে তুলনা করবে।
মাত্তেও

2
সুতরাং "মোটামুটি" শব্দটির ব্যবহার। আপনি যদি সত্যিই নিতপিকি পেতে চান তবে এসকিউএলও REPLACEনয় ... এটি "এসকিউএল দ্বারা যে ভাষাটি মাইএসকিউএল বুঝতে পারে তা
আলস্যভাবে

3

ব্যবহারকারী-আইডি 'ওম্বল' এর উপরের উত্তর ছাড়াও নীচের বিষয়গুলিও বিবেচনা করুন:

  1. 'যোগ' এর বিপরীতে 'সেট' দিয়ে একটি রেসের শর্তের সম্ভাবনা । নিক জনসনের একটি উত্তরের নীচের লিঙ্কটি দেখুন: /programming/13234556/using-memcache-add-instead-of-set

  2. আপনি যদি জানেন যে 'যোগ' করবে, তবে 'সেট' ব্যবহার করবেন না। এটি আরপিসি কল হিসাবে নেটওয়ার্কের মাধ্যমে ডেটা প্রেরণ এড়ানোর জন্য । এবং কার্যত প্রায় সব সময়ই নেটওয়ার্ক ট্র্যাফিক গ্রাস করে মেমকেচে কী-মান জোড়ার সন্ধান করার বিপরীতে। সুতরাং যদি আপনি সেই ক্ষেত্রে সবচেয়ে ভাল নেটওয়ার্ক ট্র্যাফিক এড়াতে পারেন তবে আপনার প্রতিক্রিয়া সময়টি আরও দ্রুত হবে।


অ্যাপস্ট্যাটগুলি দেখুন ( https://developers.google.com/appengine/docs/python/tools/appstats (গুগল দ্বারা)) এবং আরও উপরে পয়েন্ট # 2 বুঝতে, দয়া করে দেখুন http://www.youtube.com/watch ? v = bvp7CuBWVgA গুডো ভ্যান রসাম ( @ গুগল ) দ্বারা

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