سؤال

هل هناك طريقة لإبطال الإدخالات في memcache وفقا لمفتاح البدل؟

وحتى لو كنت تملك مفاتيح memcache التالية:

data/1
data/2
data/3

هل هناك طريقة أستطيع أن يبطل تلك المفاتيح مع شيء من هذا القبيل data/*؟ وسيكون من المفيد جدا لطرد مجموعة من البيانات التي لا معنى لها في ضربة واحدة.

هل كانت مفيدة؟

المحلول

وأفضل طريقة لتوفير مفتاح الإصدارات عند إنشاء مفتاح memcache الخاص بك. ونحن نفعل ذلك من خلال توفير وظيفة / طريقة واحدة لإنشاء مفتاح على نظامنا.

$var1 = 123;
$var2 = 456;
$cacheKey = makeKey('monkeyInfo', $var1, $var2, ...);

وmakeKey() يستخدم المعلومات في مجموعة cacheKeyVersions والعوائد:

5:monkeyInfo:123:456

لاحظ '5' في البداية. الذي يأتي من مجموعة الثابت تلوينها من keyNames => الإصدارات. لذلك إذا أردنا أن يبطل قيمة مخبأ EVERY "monkeyInfo في النظام لدينا ببساطة لتغيير هذا العدد إلى 6 في المصفوفة. ومنذ ذلك الحين على نفس المكالمة سوف تبحث عن

6:monkeyInfo:123:456

وهنا مثال على ما قد تبدو النسخة مجموعة رئيسية مثل. و"makeKey()" الدعوة ببساطة ينظر إلى هذه المجموعة للحصول على رقم إصدار أي مفتاح معين.

$cacheKeyVersions = array(
    'monkeyInfo'   => 5,
    'zebraInfo'    => 2
);

هل يمكن أن تفعل كل أنواع الأشياء لجعل تنفيذ تطابق الاحتياجات الخاصة بك، ولكن هذا هو جوهر الأساسي منه.

نصائح أخرى

وأعطها لا يدعم الحذف namespaced.

مسؤول يكي لديه اقتراح بشأن كيفية التغلب على ما يلي:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top