القضبان والتخزين المؤقت ، هل من السهل التبديل بين Memcache و Redis؟
-
26-09-2019 - |
سؤال
هل هناك واجهة برمجة تطبيقات شائعة ، إذا قمت بالتبديل بين redis أو memcached ، فلن أضطر إلى تغيير الكود الخاص بي ، بل مجرد إعداد تكوين؟
المحلول
طالما أنك لا تقوم بتهيئة العميل memcached بنفسك ولكنك تعتمد على Rails.cache
API الشائع ، التبديل من memcached إلى redis هو مجرد مسألة التثبيت redis store وتغيير التكوين من
config.cache_store = :memcached_store
ل
config.cache_store = :redis_store
أكثر معلومات حول Rails.cache.
نصائح أخرى
أنا أكره العبث بأهدافك ، لكني أنصح بعدم استخدام redis على memcached لتخزين القضبان العامة.
أستخدم Redis و Resque على نطاق واسع في تطبيق Rails كبير واعتقدت أنه سيكون من الجيد دمج التخزين المؤقت ، Raw Redis و Resque إلى واحد. واجهت بعض القضايا الكبيرة:
- أولاً ، كان أبطأ. كان يمكن أن يكون استخدامي المحدد تمامًا ، مكتبة Redis Store أو Redis نفسها. لن أختلف أي شيء إلى Dyndmouth ، وقد يختلف عدد الأميال الخاصة بك ، لكن من المفترض أن تمتص الكثير من الوقت في التحول إلى redis عند "Memcached" فقط تعمل "
- Memcached لطيف لأنه من السهل للغاية إضافة خوادم واستخدام التجزئة المتسقة لتحقيق أهدافك. لدى Redis هذا أيضًا ، ولكن في تجربتي ، كان من الصعب التعامل مع Redis في وقت واحد باعتباره مخزوف بيانات متجانسة في بعض أجزاء تطبيقي وفي أجزاء أخرى تعاملها على أنها نماذج موزعة ، باستمرار لتخزين التخزين المؤقت.
حظا سعيدا مع المشروع الخاص بك. أنا أحب redis و memcached واستخدامها في جميع مشاريعي ، لكنني سمحت للمرء أن يقوم بذلك كخادم بنية بيانات الحمار والسماح للركل الآخر في التخزين المؤقت.
تتضمن الأجزاء الأنيقة من redis تخزين المؤقتة "القائمة" - دفع/تفجير الأشياء من هذه القائمة عند حدوثها في تطبيقك.
بدلاً من إلغاء تخصيص قيمة كبيرة من memcached ، تحريرها ، ثم إعادة تخصيصها.
سيتم ذلك في رمز Ruby في مرشح مخصص ، مقابل ذاكرة التخزين المؤقت Rails الأساسية.