تخزين تلك الأشياء

نبذة عن الكاتب: شيونغ مينغهوى، الولايات المتحدة استعراض مجموعة النبيذ سياحة الأعمال المجموعة B الإقامة في الفنادق R & D فريق النهاية الرسمية منصة الخدمات التجارية، لبناء الرائدة في منصة الخدمات التجارية، ودعم احتياجات التنمية السريعة للخدمات الإقامة US بعثة فندق. كان يعمل في لينوفو، بايدو.

تؤدي: في تطبيق خدمات التسلسل الهرمي الشبكة، وقد تم استخدام ذاكرة التخزين المؤقت أكثر شعبية، فإننا سوف تجمع من العمل الفعلي ملخص خبرة حول كيفية اختيار واستخدام إطار التخزين المؤقت المعمول به وفقا لسيناريوهات مختلفة، من أجل تحقيق تحسين نوعية الخدمات، وتحسين بنية النظام الأغراض.

بشكل عام، والآن نموذج الإنترنت (موقع أو تطبيق)، العملية الشاملة يمكن وصفها بصفة عامة تطبيق متصفح خوادم قاعدة بيانات أو ملف (الذاكرة) متصفح خوادم التطبيقات ، وهو إجراء القياسية، من خلال متصفح ( أو التطبيقات واجهة) الشروع في الطلب، بعد الخادم، قاعدة التكامل ردود الفعل الحوسبة متصفح تقديم المحتوى. مع شعبية من الإنترنت، والمعلومات المحتوى أكثر تعقيدا، والمزيد والمزيد من المستخدمين وحركة المرور، ونحن بحاجة إلى دعم كمية الطلب أكثر المتزامنة، كما يحسب لنا خادم التطبيق وخادم قاعدة البيانات بذل المزيد من الجهد وأكثر من ذلك وأكثر من ذلك. ولكن في كثير من الأحيان الموارد خادم التطبيق لدينا محدودة والتغير التكنولوجي بطيء، وعدد من طلبات قاعدة البيانات في الثانية الواحدة ويمكن قبول غير محدود (أو القراءة والكتابة ملفات يقتصر)، وكيفية الاستخدام الفعال لموارد محدودة لتقديم الأفضل قد يكون أكبر الإنتاجية؟ وسيلة فعالة في تقليص كمية من حساب وعملية طلب تقصير - وهذا هو ذاكرة التخزين المؤقت. ظهور ذاكرة التخزين المؤقت هو اختراق للعملية العادية، أي صلة يمكن أن يتم اقتطاعها، وطلب يمكن الحصول مباشرة على البيانات الهدف من ذاكرة التخزين المؤقت وعاد. وبهذه الطريقة كسر الروتين، والحد من كمية حساب وتقصير عملية الطلب، ورفع فعالية وسرعة الاستجابة، وحفظ موارد الأجهزة، بحيث الموارد المحدودة لخدمة عدد أكبر من المستخدمين.

1، يمكن أن تحدث استخدام ذاكرة التخزين المؤقت في جميع جوانب 1-4، كل وصلة باستخدام أنظمة التخزين المؤقت لها سماتها الخاصة.

FIG 1 التدفق العام للتطبيقات الشبكة

ميزة مخبأ

حسب وجهة التفكير البرمجيات وجوه المنحى نظر، ذاكرة التخزين المؤقت هو نوع كائن، ثم يجب أن يكون هناك عقار:

إطلاق نار

الفعالية = إرجاع العدد الصحيح من النتائج / مخبأ رقم الطلب، مسألة سعر ضرب هو مخبأ قضية في غاية الأهمية، وهو مقياس مؤشرا هاما لفعالية ذاكرة التخزين المؤقت. وارتفاع معدل إصابة، مشيرا إلى أن استخدام ذاكرة التخزين المؤقت العالي.

أكبر عنصر (أو أكبر مساحة)

ويمكن تخزين الحد الأقصى لعدد العناصر في ذاكرة التخزين المؤقت، ذاكرة التخزين المؤقت مرة واحدة على عدد من العناصر تجاوز هذه القيمة (أو البصمة بيانات ذاكرة التخزين المؤقت تجاوز المساحة القصوى دعمها)، وسوف تؤدي بداية إفراغ السياسة مخبأ تحديد قيمة عنصر كحد أقصى معقولة وفقا لسيناريوهات مختلفة ويمكن في كثير من الأحيان تحسين معدل ضرب مخبأ إلى حد ما، وبالتالي أكثر فعالية عندما ذاكرة التخزين المؤقت.

استراتيجية واضحة

كما هو موضح أعلاه، يقتصر مساحة التخزين ذاكرة التخزين المؤقت، عندما يتم تعبئة مساحة مخبأ مع، وكيفية ضمان خدمات مستقرة في نفس الوقت تحسين فعالية معدل ضرب؟ يتم التعامل مع هذا الوضع من خلال استراتيجية مخبأ تفرغ، تصميم استراتيجية لميزات البيانات الخاصة بها يمكن أن تحسن بشكل فعال معدل ضرب. الاستراتيجية العامة شيوعا هي:

أ. FIFO (أولا في الخروج أولا)

سياسة FIFO، فإن أول من يدخل البيانات في مساحة المخزن المؤقت مخبأ لن يكون كافيا (تجاوز الحد الأقصى من العناصر) تتم إزالة تفضيلي لتحرير مساحة جديدة لقبول البيانات الجديدة. الخوارزمية الاستراتيجية الرئيسية يقارن عنصر الوقت خلق ذاكرة التخزين المؤقت.

ب. LFU (أقل استخداما)

سياسة الاستخدام الدنيا، سواء كان أو لم تنته، وفقا للعناصر المستخدمة لتحديد العدد، وأقل مسح تردد من استخدام عناصر تحرير مساحة. العناصر الرئيسية لخوارزمية مقارنة hitCount استراتيجية (ضرب عدد).

ج. LRU (المستخدمة مؤخرا الأقل)

أقل الاستراتيجية المستخدمة مؤخرا، سواء كان أو لم تنته، وفقا لعنصر الوقت الطوابع وآخر المستخدمة، وإزالة أبعد باستخدام عنصر الطوابع مساحة تصل مجانا. العناصر الرئيسية لخوارزمية استراتيجية حديثة نسبيا هي الحصول على الحياة.

وبالإضافة إلى ذلك، هناك بعض الاستراتيجيات البسيطة مثل:

يتم تحديد وقت انتهاء الصلاحية، وقتا أطول انتهاء عنصر التنظيف؛

وفقا لحكم وقت انتهاء الصلاحية، لتنظيف العناصر انتهت مؤخرا.

تنظيف عشوائي.

الكلمة (أو محتوى عنصر) طول تنظيف.

ذاكرة التخزين المؤقت وسائل الإعلام

(وسائل الإعلام من وجهة نظر الأجهزة، لا شيء أكثر من نوعين من الذاكرة والقرص الصلب) تنقسم من الناحية الفنية، يمكن تقسيمها إلى عدة والذاكرة والملفات على القرص الثابت، قاعدة البيانات.

  • الذاكرة: مخابئ المخزنة في الذاكرة أسرع الخيار، لا الإضافي الأول / O النفقات العامة، ولكن العيب هو عدم وجود ذاكرة دائمة من الهبوط قرص فعلي، وبمجرد أن التطبيق كسر غير طبيعي إلى أسفل، إعادة تشغيل البيانات من الصعب أو المستحيل لاسترداد.

  • القرص الصلب: وبصفة عامة، سيتم استخدام الإطار جنبا إلى جنب مع الكثير من الذاكرة المؤقتة والقرص الصلب، ومساحة تخصيص الذاكرة ممتلئة، أو في حالة غير طبيعية، يمكن أن يكون مساحة الذاكرة السلبية أو الإيجابية سوف تستمر البيانات إلى القرص الثابت، لتحرير مساحة أو احتياطية الغرض من البيانات.

  • قاعدة بيانات: لقد ذكرت في وقت سابق، واحدة من أغراض لزيادة التخزين المؤقت الاستراتيجية هو للحد من قاعدة البيانات I / O الضغط. الآن استخدام قاعدة البيانات كما لم يتم إرجاع المتوسطة مخبأ للمشكلة القديمة؟ في الواقع، هناك العديد من أنواع قواعد البيانات، مثل أولئك الذين لا تدعم SQL، ببساطة المفتاح، هيكل خاص من قيمة تخزين قاعدة البيانات (مثل berkleydb)، وزمن الاستجابة والإنتاجية هي أعلى بكثير من قواعد البيانات العلائقية المعتادة لدينا.

في إطار خدمة الطلب الحالي، ونحن المصنفة تقسيم ذاكرة التخزين المؤقت هي أكثر شيوعا يستند على درجة اقتران العازلة وتطبيق ينقسم إلى ذاكرة التخزين المؤقت المحلية (ذاكرة التخزين المؤقت المحلية) والتخزين المؤقت البعيد (مخبأ الموزعة):

  • ذاكرة التخزين المؤقت المحلية: يشير إلى عنصر مخبأ التطبيق، أكبر ميزة هي التطبيق وذاكرة التخزين المؤقت في الطلب الداخلي نفس العملية مخبأ سريع جدا، وليس الكثير من النفقات العامة الشبكة، والدعم في طلب واحد لا تتطلب مجموعة أو مجموعات سيناريوهات الاستخدام دون سابق إنذار في حالة كل عقدة على كل من الأنسب آخر تحت ذاكرة التخزين المؤقت المحلية، في الوقت نفسه، يجب أن يقترن عيوبه أيضا مع التطبيقات ذاكرة التخزين المؤقت، تطبيقات متعددة لا يمكن مشاركة مباشرة ذاكرة التخزين المؤقت، كل عقدة أو مجموعة كل احتياجات التطبيق للحفاظ على الذاكرة المؤقتة الخاصة منفصلة هو مضيعة.

  • التخزين المؤقت البعيد :: يشير إلى استخدام عنصر معزولة وذاكرة التخزين المؤقت أو الخدمة، وأكبر ميزة هو في حد ذاته تطبيق منفصل، عدد وافر من التطبيقات التي يمكن أن تكون مشتركة مخبأ مباشرة مع العزلة تطبيق المحلية.

في أنواع مختلفة الحالية من مخابئ تنشط في الآلاف من التطبيقات في الخدمة، وليس هناك نظام التخزين المؤقت يمكن أن تحل جميع سيناريوهات الأعمال أو نوع البيانات، نحن بحاجة إلى المشاهد الخاصة بك والخلفية واختيار معظم مخطط التخزين المؤقت المناسب . مبرمج يستخدم ذاكرة التخزين المؤقت، مهندس المهارات اللازمة، المبرمجين الرشيد القائم على نوع البيانات، سيناريوهات الأعمال لبدقة تحديد ما هو نوع من استخدام ذاكرة التخزين المؤقت، كيفية استخدام هذا المخبأ، للحد من تكلفة كفاءة أسرع أفضل الغرض.

ذاكرة التخزين المؤقت المحلية

تنفيذ برنامجي مخبأ

أ. المتغيرات عضو أو المتغيرات المحلية لتحقيق

بسيط رمز المثال هو مبين في الشكل.

FIG 2 FIG نموذج التعليمات البرمجية بسيطة

لتعيين متغير جزء بنية بيانات خدمة التخزين المؤقت المحلي، للحد من كثرة التكرار قاعدة بيانات O عمليات / I. العيب يقتصر على فئة من نطاقها الخاص، بين الطبقات لا يمكن مشاركة ذاكرة التخزين المؤقت.

ب. متغيرات ثابتة لتحقيق

معظم الموارد ثابت واحد مشترك مخبأ تنفيذ تجسيد، ونموذج التعليمات البرمجية التالية:

CityUtils الطبقة العامة {

وشاع استخدام المعلومات الأساسية والبنية التحتية الحضرية لتحديد الأعمال التجارية من خلال الحصول على الذاكرة المؤقتة ثابت متغير، والحد من وتيرة I / O يقرأ، يمكن مشاركة متغيرات ثابتة بين الطبقات لتحقيق، يمكن أن تكون مشتركة في العملية، مخبأ في الوقت الحقيقي إلى حد ما أقل.

من أجل حل المشكلة في الوقت الحقيقي التخزين المؤقت البيانات المحلية، والاستخدام الواسع النطاق الحالي للآلية الاكتشاف التلقائي جنبا إلى جنب مع حارس الحديقة، في الوقت الحقيقي تغيير ثابت المحلي متغير مخبأ:

المكونات الأساسية MtConfig، يستخدم مبدأ مماثل، وذلك باستخدام ذاكرة التخزين المؤقت متغير ثابت، جنبا إلى جنب مع إدارة موحدة حارس الحديقة، بحيث تحديث تلقائيا وبشكل حيوي ذاكرة التخزين المؤقت، كما هو مبين في الشكل.

FIG 3 Mtconfig FIG تنفيذها

هذا التنفيذ مخبأ، ومزايا المنطقة كومة قراءة مباشرة، الأسرع والأكثر ملاءمة؛ منطقة الرجمة هي تخضع لتأثير عيوب نفسه، جدا كمية محدودة من البيانات في ذاكرة التخزين المؤقت، في حين أن تأثير الوقت ذاكرة التخزين المؤقت GC. أساسا لتلبية كمية صغيرة من البيانات في متطلبات مخبأ مشهد واحد، و لا يتطلب تغييرات على البيانات المخزنة مؤقتا هو تصور حساسة جدا، وإدارة التكوين العامة، البيانات ثابت الأساسية ومشاهد أخرى.

EhCache

Ehcache هو الآن الأكثر شعبية نقية جافا مفتوحة المصدر الأطر التخزين المؤقت، التكوين هو بسيطة وواضحة وقوية، هو تطبيق مخبأ خفيفة الوزن جدا، وكنا في الداخل السبات التكامل وظيفة مخبأ ذات الصلة.

FIG 4 ehcache إطار FIG

يمكننا أن نفهم من الشكل 4، ehcache تعريف الأساسية ما يلي:

إدارة ذاكرة التخزين المؤقت: إدارة التخزين المؤقت، سابقا سمح فقط حالة واحدة، ولكن الآن أيضا متعدد المثال.

مخبأ: مدير عازلة يمكن أن تضع عددا من ذاكرة التخزين المؤقت، تخزين بيانات كبيرة، قد حققت كل Ehcache مخبأ واجهة، والذي يستخدم في منطقة عازلة سبيل المثال الحقيقي؛ وضع من خلال إدارة ذاكرة التخزين المؤقت بسهولة يمكن عزل تعدد المخازن في طلب واحد سبيل المثال، سيناريو العمل مختلف متطلبات الخدمة مستقلة، بيانات ذاكرة التخزين المؤقت العزلة المادية، بينما في الوقت نفسه يتطلب المشتركة.

العنصر: الوحدات المكونة احدة من بيانات ذاكرة التخزين المؤقت.

نظام تسجيلة رقم (SOR): عنصر يمكن أن بيانات حقيقية قد يكون المنطق الحقيقي الأعمال التجارية، والمكالمات الواجهة الخارجية، قاعدة بيانات لتخزين البيانات الحقيقي أو ما شابه ذلك، تتم قراءة المخزن المؤقت أو كتابة من الذهاب SOR إلى SOR.

يمكن أن ينظر إليه في الجزء العلوي، ويوفر ehcache كامل الدعم القياسي لJSR، JMX، وما إلى ذلك، يمكن تحسين التوافق وقابلية، ولكن لديه آلية أفضل لرصد وإدارة جميع أنواع الكائنات. وهو يغطي وسائل الاعلام ذاكرة التخزين المؤقت كومة (كومة)، كومة الذاكرة الخارجية (BigMemory تدعم النسخة التجارية) والأقراص يمكن تعيين بشكل مستقل عن كل الممتلكات والسياسات الإعلامية. ehcache مستقلة في البداية إطار ذاكرة التخزين المؤقت المحلية التجمع، في مجال التنمية في وقت متأخر، خدمة الطين نموذج مجموعة ملزمة يمكن أن تدعم توزيع مجموعات ذاكرة التخزين المؤقت، هناك اتصال بين عقدة RMI، JGroups، JMS ذاكرة التخزين المؤقت Server و غيرها من وسائل الاتصال، 4 يتم وصف جزء الجانب الأيسر.

ويشمل تدفق البيانات الكلي مثل هذه الأنواع من السلوك:

  • دافق: الانتقال إلى إدخالات ذاكرة التخزين المؤقت على مستوى منخفض.

  • خطأ: نسخة من كائن من الأقل إلى الأعلى. في عملية الحصول مؤقتا، وجد نفسه في طبقة من الإدخال المؤقت قد انتهت، لمسة - قدم السلوك خطأ.

  • الطرد: تتم إزالة الإدخال المؤقت.

  • أنتهاء: دولة فاشلة.

  • تعلق: لا يزال الإدخال المؤقت القسري عند مستوى معين.

ويعكس الرقم 5 تدفق البيانات بين طبقات منها، ولكن يعكس أيضا دورة حياة طبقات البيانات. الاستخدامات التكوين التالية ehcache نظرة:

< ehcache >

وعموما، فإن استخدام ehcache بسيط نسبيا ومريحة، ويوفر واجهة API كاملة من أنواع مختلفة. وتجدر الإشارة إلى أنه على الرغم من ehcache دعم القرص المثابرة، ولكن بسبب مخبأ المستوى المتوسط، ذاكرة التخزين المؤقت في الذاكرة، وإذا لم يكن هناك فرشاة النشطة إلى استمرار القرص، ثم، في حالة غير طبيعية أسفل تطبيقات أخرى، لا تزال فقدان البيانات سيكون هناك مؤقتا يحدث، والتي يمكنك فرشاة إلى التخزين المؤقت على القرص حسب الحاجة، وفرشاة إدخالات ذاكرة التخزين المؤقت لتشغيل القرص يمكن أن يقوم بها طريقة cache.flush وتجدر الإشارة إلى أنه ليكتب القرص الهدف، شريطة أن تسلسل الكائنات.

الميزات الرئيسية:

  • بسرعة، وأنظمة المتزامنة للغاية لمشاهد كبيرة، ehcache خاصية تعدد آليات التحسينات الأمثل المقابلة.

  • بسيطة، حزمة جرة صغيرة وبسيطة التكوين يمكن استخدامها مباشرة، دون غيرها من الخدمات لا لزوم لها تعتمد مشهد مستقل.

  • وهو يدعم استراتيجيات التخزين المؤقت متعددة ومرنة.

  • هناك مستويان من ذاكرة التخزين المؤقت البيانات: الذاكرة والقرص، بالمقارنة مع ذاكرة التخزين المؤقت المحلية العامة، مع مساحة تخزين القرص، سوف تكون قادرة على دعم كميات أكبر من متطلبات ذاكرة التخزين المؤقت البيانات.

  • الاستماع مأخذ وجود ذاكرة التخزين المؤقت ومدير ذاكرة التخزين المؤقت، يمكن أن يكون أكثر بسيطة ومريحة لمراقبة وإدارة المثال ذاكرة التخزين المؤقت.

  • تدعم إدارة التخزين المؤقت متعددة سبيل المثال، وحالات متعددة من منطقة ذاكرة التخزين المؤقت.

ملاحظة: ehcache إعداد مهلة بشكل رئيسي لضبط سياسة مهلة الشاملة لمثيل مخبأ بأكمله، وليس هناك أي إعدادات صفقة مهلة أفضل لشخصية الفرد مفتاح (هناك إعدادات النهج، ولكن أكثر تعقيدا، وليس وصفها)، لذلك، في الاستخدام ينبغي إيلاء الاهتمام لعنصر مخبأ منتهية الصلاحية لا يمكن استردادها GC، وكلما كان ذلك يعد ذاكرة التخزين المؤقت، وزيادة أثر الذاكرة، كلما زاد احتمال حدوث تسرب للذاكرة.

الجوافة الكاش

الجوافة ذاكرة التخزين المؤقت هو مفتوح المصدر جافا جوجل إعادة استخدام أداة التخزين المؤقت مكتبة مجموعة أدوات، الرئيسية الميزات تحقيق التخزين المؤقت لها هي:

  • يتم تحميل العقدة تلقائيا إلى بنية الإدخال المؤقت.

  • عندما تتجاوز قيمة الحد الأقصى البيانات المخزنة مؤقتا باستخدام خوارزمية LRU لإزالة؛

  • تم الوصول إليها أو مكتوبة إلى وقت انتهائها احتساب آلية وفقا لآخر عقدة الدخول؛

  • يتم تغليف مفتاح مخبأ داخل WeakReference المشار إليها.

  • يتم تغليف قيمة في ذاكرة التخزين المؤقت أو إشارات WeakReference SoftReference فيها؛

  • إحصائية معدل البيانات ضرب، ومعدل غير طبيعي، مخبأ معدل يغيب وغيرها من الإحصاءات بالطبع.

FIG بنية بيانات 5 guavacache من FIG.

الجوافة الكاش تصميم الهندسة المعمارية الإلهام يأتي من ConcurrentHashMap لاحظنا في وقت سابق، ومشاهد بسيطة يمكن أن تكون مشفرة بواسطة hashmap للقيام بها caching قيمتها صغيرة من البيانات، ولكن إذا كانت النتائج قد تتغير بمرور الزمان أو المكان البيانات إذا كنت تريد تخزين السيطرة عليها أدركت هذا الهيكل بيانات ضروري.

الجوافة ذاكرة التخزين المؤقت ConcurrentHashMap الموروثة فكرة استخدام غرامة الحبيبات تأمين شرائح متعددة من الطريق، وضمان ترابط آمن في الوقت نفسه، فإن الطلب على سيناريوهات المتزامنة للغاية. مخبأ يشبه الخرائط، والذي هو عبارة عن مجموعة من أزواج مفتاح القيمة المخزنة، إلا أنه أيضا بحاجة إلى أن تعالج نزع، تنتهي، ودينامية خوارزميات المنطق الحمل، تحتاج إلى بعض المعلومات الإضافية لتنفيذ هذه العمليات. وردا على ذلك، وفقا لوجوه المنحى، على أن تفعل مع البيانات المرتبطة طريقة التعبئة والتغليف. 6 يوضح نموذج ذاكرة التخزين المؤقت البيانات، يمكنك ان ترى، واجهة تستخدم لتغليف أزواج ReferenceEntry المفتاح القيمة، ولكن مع القيمة ValueReference يتم تغليف، من قبل القيادة المرجعي السبب، لأن ذاكرة التخزين المؤقت WeakReference مفتاح الدعم وSoftReference، قيمة WeakReference .

تدفق 6 بيانات ذاكرة التخزين المؤقت المخطط من FIG.

ReferenceEntry زوج مفتاح القيمة هو عقدة المجردة التي تحتوي على ValueReference فئات مجردة والقيم الأساسية، ذاكرة التخزين المؤقت الجزء تتألف من عدد وافر، ولكل يحتوي على مجموعة الجزء ReferenceEntry، لكل إدخال مجموعة هو سلسلة ReferenceEntry ReferenceEntry، و ReferenceEntry يحتوي على مفتاح، التجزئة، valueReference، الحقل التالي. بالإضافة إلى دخول مجموعة سلاسل ReferenceEntry، وهو الجزء، (سيتم وصفها لاحقا في سلسلة العمل) عن تكوين الوصول ReferenceEntry المزيد من سلسلة (على accessQueue) وسلاسل الكتابة (writeQueue). ReferenceEntry يمكن أن يكون إشارة قوية إلى نوع المفتاح، يمكن WeakReference اكتب مفتاح، من أجل الحد من استخدام الذاكرة، يمكنك أيضا تحديد الحاجة إلى معين المرجعي سلسلة الكتابة وسلسلة الوصول العزم على أن تنشأ على أساس ما إذا كان تكوين expireAfterWrite، expireAfterAccess، maximumSize: StrongEntry ، StrongWriteEntry، StrongAccessEntry، StrongWriteAccessEntry وهلم جرا.

لValueReference، لدعم ذاكرة التخزين المؤقت القيمة، SoftReference القيمة WeakReference القيمة وإشارات قوية، لذلك يتوافق مع تحقيق ثلاث فئات: StrongValueReference، SoftValueReference، WeakValueReference. من أجل دعم آلية تحميل الحيوية، كما أن لديها LoadingValueReference، والحاجة للتحميل الديناميكي من قيمة مفتاح، القيمة الأولى في حزمة LoadingValueReference من أجل التعبير عن مفتاح المقابلة لقيمة تحميلها بالفعل، إذا المواضيع الأخرى يجب أن الاستعلام قيمة مفتاح المقابلة، والتي يمكن الحصول عليها بالرجوع، وينتظر الانتهاء من تغيير قيمة التحميل، وبالتالي ضمان أن يتم تحميل قيمة مرة واحدة فقط، عندما يتم تحميل هذه القيمة إلى استبدال LoadingValueReference ValueReference إلى أنواع أخرى. يحافظ على وجوه ValueReference إشارة إلى ReferenceEntry، منذ لWeakReference، يتم استرداد SoftReference، الأمر الذي يتطلب دخول المقابلة في مفتاح يتم استبعادها من الجزء القيمة جدول.

WriteQueue وAccessQueue: من أجل تحقيق خوارزمية الأقل المستخدمة مؤخرا، الجوافة الكاش إضافة سلاسل اثنين في الجزء: سلاسل الكتابة (writeQueue) وسلسلة وصول (accessQueue)، وسلاسل هما قائمة مرتبطة مضاعف، من خلال ReferenceEntry في previousInWriteQueue، nextInWriteQueue وpreviousInAccessQueue، يتم ربط nextInAccessQueue، لكنه أعرب عن أشكال قائمة الانتظار. يتم تخصيص WriteQueue وAccessQueue العرض، الاعلان (دعوة مباشرة العرض)، والمنطق إزالة، استطلاع، الخ العمليات، لعرض (إضافة) عملية، إذا كانت العقدة هي جديدة، ثم تضاف مباشرة إلى نهاية السلسلة، إذا كان القائمة العقد، ونهاية سلسلة من الفروع مرتبطة، إلى عملية إزالة، ويزيل عقدة من خلالها سلسلة؛ استطلاع للتشغيل، وإزالة عقدة الرأس إلى العقدة المقبل، والعودة.

فهم الهيكل العام للبيانات ذاكرة التخزين المؤقت، وبعد ذلك ننظر في العمليات ذات الصلة لذاكرة التخزين المؤقت هو أبسط من ذلك بكثير:

يتم تشغيل جزء من نزع عمل سياسي واضح عمليات تنظيف في كل بداية الدعوة، ونهاية، والآخر من ذاكرة التخزين المؤقت من المتوسط بالمقارنة مع موضوع رصد تنظيف، والنفقات العامة يمكن الحد، ولكن إذا لفترة طويلة دون استدعاء الأسلوب، ثم، سوف تسبب عدم وضوح تصل مشكلة الافراج عن الوقت المناسب من مساحة الذاكرة. بطرد أربع المعالجة الرئيسية قائمة الانتظار: 1 keyReferenceQueue، 2 valueReferenceQueue (3)؛ writeQueue (4)؛ accessQueue ..... قائمة انتظار الأولين لWeakReference، SoftReference تضاف إلى جامع القمامة، تحتاج فقط لاجتياز سوف تنظيف طابور كامل إزالته من دخول المقابلة في LocalCache هنا keyReferenceQueue ReferenceEntry التخزين، ويتم تخزين valueReferenceQueue في ValueReference، من مخبأ إزالة الحاجة إلى مفتاح، وبالتالي الحاجة إلى الإشارة إلى ReferenceEntry ValueReference هذه الجبهة كما ذكر من قبل. في حين أن الأخيرين قائمة الانتظار، وتحتاج فقط للتحقق ما إذا كان الوقت المناسب تنتهي، ومن ثم يجب أن تبدأ من الصفر لإيجاد تنتهي الدخول، يمكنك إزالتها.

وضعت في الجزء العملية: وضع العملية بسيطة نسبيا، أولا وقبل كل ذلك يحتاج إلى الحصول على القفل، ثم حاول القيام ببعض الأعمال تنظيف، وConcurrentHashMap مماثلة المنطقية التالية لإعادة صياغة، والعثور على مكان وحقن البيانات. وتجدر الإشارة إلى أنه عندما يجد دخول القائمة، تحتاج إلى تحديد القيمة الحالية ValueRefernece في الواقع، لقد تم استردادها، لأنها يمكن أن تكون WeakReference، نوع SoftReference، إذا تم الشفاء منها، يتم كتابة قيمة جديدة . وسجل في كل تحديث وإزالة الحدث بسبب العملية الحالية، حدد السبب المناسب: المجمعة، محل، الخ هذه الأحداث المسجلة على الخروج موحدة دعوة RemovalListener ذاكرة التخزين المؤقت المسجلة، نظرا إلى معالج الحدث قد يكون هناك وقتا طويلا، وبالتالي سيكون هناك يتم تجهيز الحدث المنطقي بعد قفل الخروج. أخيرا، وبعد التحديث تحاول إدخال موجود لإزالة هذه الدخول تنتهي بالفعل. مزيد من عملية البيع هي أيضا الحاجة إلى تحديث writeQueue صحة الدلالي وaccessQueue.

الحصول على قطعة مع عمليات CacheLoader: 1 والشيكات الجدول موجود بالفعل لم يكن تعافى، ولا تنتهي دخول، إذا وجدت، وتكوين refreshAfterWrite في CacheBuilder، وقد الفاصل الزمني الحالي يعمل هذا الحدث، فإن قيمة إعادة تحميل خلاف ذلك، والعودة مباشرة من القيمة الأصلية؛ 2. إذا وجدت ValueReference هو LoadingValueReference، ثم الانتظار لنهاية الحمل LoadingValueReference، وإرجاع القيمة المحملة؛ 3. إذا لم يتم العثور على دخول، أو دخول قيمة، ثم يضاف بعد قفل، والاستمرار في العثور على مفتاح دخول المقابلة موجود بالفعل في الجدول، إذا والعثور على entry.isLoading المقابلة غير صحيح، فهذا يعني أن هناك يتم تحميل موضوع آخر، لذلك انتظر أن موضوع ديها تحميل النهائي، وإذا وجد غير قيمة، وعودة قيمة، أو إنشاء LoadingValueReference، وندعو loadSync تحميل القيمة المناسبة، بعد تحميل كاملة، والقيمة التي تم تحديثها للتحميل حديثا في الجدول، التي تحل محل LoadingValueReference الأصلي في معظم الحالات.

يوفر الجوافة ذاكرة التخزين المؤقت نموذج باني مولد CacheBuilder لخلق وسيلة مخبأ مريحة للغاية، ولكل إعدادات معلمات تكوين ذاكرة التخزين المؤقت، على غرار وظيفة الكتابة البرمجة، قد يتم تعيين المعلمات المختلفة في الاختيار الخاصة. ويقدم ثلاث طرق تحميلها في ذاكرة التخزين المؤقت. وهم:

  • عند بناء ذاكرة التخزين المؤقت، وذلك باستخدام وسيلة البنية الداخلية تدعو CacheLoader طريقة لتحميل البيانات.

  • للاستدعاء، وطريقة رد لتحميل البيانات.

FIG 7 أعطها بنية الذاكرة من FIG.

استخدام الطريقة المباشرة الخام لتحميل البيانات مباشرة Cache.put، ولكن تلقائيا والحمل يفضل لأنه يمكن بسهولة استنتاج اتساق جميع محتويات ذاكرة التخزين المؤقت.

طريقتان لتنفذ بناء مولد منطق: يأخذ قيمة المفتاح من ذاكرة التخزين المؤقت، إذا كان قد تم مؤقتا القيمة في قيمة مؤقتا يتم إرجاعها إذا أمكن الحصول على أي قيمة مؤقتا من خلال طريقة، والفرق هو أن cacheloader محددة بعبارات عامة، يتم تعريف ذاكرة التخزين المؤقت بأكمله، ويمكن اعتبار طريقة موحدة وفقا لقيمة أساسية تحميل قيمة، وطريقة للاستدعاء أكثر مرونة، مما يسمح لك للحصول على عندما طريقة تحميل المحدد. استخدام سبيل المثال:

/ ** * * CacheLoader / الجمهور loadingCache الفراغ {LoadingCache < سلسلة، سلسلة = "" >  الرسوم البيانية = CacheBuilder.newBuilder .maximumSize (1000). البناء (CacheLoader جديدة < سلسلة، سلسلة = "" >  {Override

وعموما، الجوافة ذاكرة التخزين المؤقت على أساس تصميم المتميز توجه ConcurrentHashMap، هناك تحسن مماثل في سيناريوهات التزامن عالية على الدعم واستراتيجية ذات ألوان، وذلك باستخدام إشارات القيادة المرجعي، وتحسين سرعة الوصول إلى البيانات ...... تحت التزامن عالية والحفاظ GC يمكن إعادة تدوير، وتوفير مساحة، وفي الوقت نفسه، سلسلة الوصول للكتابة وتصميم سلسلة يمكن أن يكون أكثر مرونة وكفاءة التنظيف تنفيذ أنواع متعددة من استراتيجيات التخزين المؤقت بما في ذلك تنظيف القدرة القائمة، وتنظيف تستند إلى الوقت، تنظيف القائم على المرجعية؛ برمجيا مولد بناء إدارة لإعطاء المستخدم المزيد من الحرية، ووضع مناسب يمكن تعيين وفقا لسيناريوهات مختلفة.

توزيع الكاش

التخزين المؤقت أعطها

أعطها هي واحدة من إزالة نطاق واسع مخبأ للمنتجات مفتوحة المصدر، والتي هي نفسها لا تقدم حلولا واقعية الموزعة. في الخادم، بيئة نظام أعطها هو في الواقع تراكم احد أعطها الخادم والبيئة لبناء بسيط نسبيا، مخبأ وزعت بشكل رئيسي في عملية التنفيذ العميل عن طريق توجيه العملاء للتوصل إلى حل الموزعة. توجيه العميل هو مبدأ بسيط جدا، وخادم التطبيق عند قيمة كل مفتاح الوصول، خوارزمية بواسطة مفتاح المعينة لخدمة الجدول nodeA أعطها، حتى يتسنى لجميع العمليات في مفتاح nodeA، مثل هيكل FIG. 7، 8 هو مبين في الشكل.

يستخدم الاتساق العميل أعطها خوارزمية التجزئة مثل سياسة التوجيه، في FIG 8، نسبة إلى تجزئة العامة (مثل مودولو بسيط) الخوارزمية، خوارزمية التجزئة الاتساق حساب قيمة التجزئة بالإضافة إلى مفتاح، وحساب كل خادم تجزئة المقابلة قيمة، ثم يتم تعيين قيم التجزئة على مجموعة محدودة (مثل 0-2 ^ 32). من خلال إيجاد قيمة تجزئة أكبر من التجزئة (مفتاح) المخزنة في الملقم ك البيانات الحد الأدنى مفتاح الملقم الهدف. إن لم يكن، ثم مباشرة إلى خادم مع أصغر قيمة التجزئة كما الملقم الهدف. في الوقت نفسه، إلى حد ما، في حل مشكلة التوسع، إضافة أو إزالة عقدة واحدة، من أجل المجموعة بأكملها، فإنه لن يكون لها تأثير كبير. الإصدارات الأخيرة، وتهدف إلى زيادة العقد الظاهري لزيادة تعزيز قابليتها للاستخدام.

FIG 8 أعطها طرق العميل FIG.

مثال FIG 9 أعطها التجزئة FIG الاتساق

أعطها هو كفاءة عالية ذاكرة التخزين المؤقت الموزعة، أعطها فهم آلية إدارة الذاكرة من أجل فهم أفضل أعطها، حتى نتمكن من صقل لخصائص البيانات المتوفرة لدينا، والسماح لها أفضل لاستخدامنا. ونحن نعلم أن يعتمد فقط على أساس أعطها مفتاح القيمة نوع تخزين البيانات من أزواج قيمة المفتاح. هناك نوعان من المفاهيم الهامة جدا في بنية الذاكرة أعطها: لوح وقطعة.

لوح هو كتلة من الذاكرة، وهذا هو أصغر وحدة ذاكرة أعطها التطبيق الأول. عادة عند بدء استخدام أعطها المعلمة -m يحدد الذاكرة المتوفرة لديها، ولكن ليس في الوقت الحالي لتبدأ تخصيص الذاكرة على كل شيء، وهذا فقط لتطبيق عند الحاجة، ويجب أن يكون كل التطبيق لوح. هو ثابت حجم لوح إلى 1M (1048576 بايت)، لوح من قبل عدد من تكوين قطعة الحجم على حد سواء. يتم حفظ كل قطعة في بنية البند، وزوج من مفتاح وقيمة.

بينما في نفس قطعة في لوح متساوية في الحجم، ولكن حجم قطعة لا تساوي بالضرورة في لوح مختلفة، وفقا لقطعة أعطها من أحجام مختلفة، ويمكن تقسيمها على لوح في العديد من أنواع (الطبقة)، والحالة التي يكون فيها أعطها الافتراضي ينقسم لوح إلى 40 فصول (CLASS1 ~ class40)، في الفئة 1، وحجم قطعة هو 80 بايت، لأن حجم لوح ثابتة 1048576 بايت (1M)، وبالتالي يمكن أن يكون ما يصل الى 13107 قطعة في CLASS1 (أي لوح يمكن تخزين ما يصل إلى 13107 البيانات مفتاح قيمة صغيرة الموافق 80 بايت).

أعطها تأخذ إدارة الذاكرة المخصصة مسبقا، وإدارة تجميع وإدارة فريق من الدرجة لوح ذكرنا أعلاه، وفقا لقطعة ينقسم حجم لوح في العديد من أنواع. الذاكرة عملية ما قبل التخصيص هو ما هو عليه؟ عندما يضاف إلى أعطها، أعطها يستند أولا على حجم هذا البند بند لتحديد الفئة لوح أنسب: على سبيل المثال، حجم البند 190 بايت، والتقصير حجم الطبقة قطعة 160 بايت 4 غير مناسب بشكل واضح، الطبقة 5 بعد حجم قطعة 200 بايت، أكبر من 190 بايت، بحيث يتم وضع العنصر في الصف 5 (من الواضح أنه سيكون هناك 10 بايت أمر لا مفر منه أن تضيع)، لحساب قطعة المحملة، والذهاب إلى أعطها التحقق من حجم الطبقة ليست هناك قطعة مجانية، إذا لم يحدث ذلك فإن مساحة تنطبق 1M (1 قه بلاطة) وتصنف باعتبارها جزءا الكريمة. على سبيل المثال، عندما البند الأول وضعت في 190 بايت إلى أعطها، أعطها ستنتج فئة لوح 2 (المعروف أيضا باسم صفحة)، وسوف يستغرق قسما، و5241 المتبقية لحجم قطعة المقبل له أننا العنصر المناسب في الاستخدام، ونحن عندما تشغيله كل قطعة 5242، في المرة القادمة عندما يكون هناك عنصر بين 160 إلى إضافة في 200 بايت، سوف ينتج لوح أعطها مرة أخرى فئة 5 (حتى لا يكون هناك اثنين صفحة).

لخص، وجوانب إدارة الذاكرة أعطها تحتاج إلى عناية:

  • ينقسم قطعة كبيرة داخل الصفحة، بينما الصفحة هو ثابت في 1M، وبالتالي فإن أكبر قطعة لا يتجاوز 1M.

  • قطعة من الذاكرة لإضافة 48B الاحتلال الفعلي، لأن بنية البيانات قطعة نفسه يحتاج لاحتلال 48B.

  • إذا بيانات المستخدم أكبر من 1M، بعد ذلك سوف أعطها خفض في عدد وافر من قطعة.

  • وقد خصص للخروج من صفحة لا يمكن إعادة تدويرها.

للحصول على معلومات المفتاح القيمة، ويفضل أن لا يزيد 1M في الحجم، في حين أن أكثر توازنا أفضل المعلومات طول النسبية ومستقرة، والتي يمكن ضمان الاستفادة القصوى من الذاكرة، وفي الوقت نفسه، LRU تنظيف أعطها المستخدمة، حتى وقت انتهاء الصلاحية معقول، وتحسين معدل إصابة.

لا سيناريو محدد ل، مفتاح قيمة لتلبية الاحتياجات في إطار فرضية استخدام أعطها العنقودية موزعة هو الخيار الأفضل، واستخدام هياكل والعملية هي بسيطة نسبيا، وزعت الكتلة في فشل نقطة واحدة يؤثر فقط على جزء صغير من الحالات الشاذة البيانات، لا يمكن أن Magent التخزين المؤقت وضع الوكيل، هل احتياطية نقطة واحدة، ورفع مستوى توافر عالية، وتعتمد على الذاكرة المؤقتة برمتها، وبالتالي فإن زمن الاستجابة سريعة جدا، أنها لا تتطلب التسلسل إضافية، إلغاء التسلسل من البرنامج، ولكن نظرا مقرها الذاكرة، والبيانات غير الثابتة، وإعادة تشغيل لا يمكن استرداد البيانات فشل كتلة. نسخة عالية من أعطها له عملية ذرية دعم الوضع CAS، وانخفاض تكلفة حل لمشكلة التحكم التزامن.

......

انقر على قراءة النص الأصلي عرض محتويات بأكملها.

في 2019 بدأت حديقة بيع التذاكر! توفير المال الانقلاب، وقائمة نقطة بيع

مخزن خبرة لسيارة باسات الجديدة، السيارة، أعطني سببا لعدم شراء

في الوقت الحقيقي البيانات الكبيرة تجهيز القتالية

أصحاب فضلك المرجعية! ذلك بنفسك صيانة السيارات، هذه النصائح ثمانية متناول اليدين!

البيانات الكبيرة المورد التسويق الكهرباء أكثر من تاوباو الروتيني لشراء تنورة، وكذلك "ليرى الناس تحت Caidie"؟

UP ilem الرئيسي، أوتاكو العاديين، وليس العادية هوية العنصر الثاني | 100 رجل التفكير

نوافذ فرملس في "السم"، 300000 الهبوط السيارات ذكر فولكس واجن CC

من السنوات الأولى من "مطاردة" لفي الآونة الأخيرة "شيطان القط السيرة الذاتية" في الأفلام اليابانية والتعلم المتبادل وما الأثر؟

القياس سباق البلاد! المهارات المهنية المنافسة CNC مخرطة التجمع ونهائيات تعديل وصيانة

"فنغ لين المعرض تاريخ عائلي" وإذ تضع في اعتبارها تاريخ تعزيز التكامل عبر المضيق

انفاق المزيد من المال لشراء سيارة مع كوة، في نهاية جديرة بالاهتمام؟

تعميق الاصلاح في العمل | محور معززة نقش سيتم كشف النقاب بكين حديقة جينغشان في نمط كامل