PHP - Redis / memcachedb / mongodb أو غيرها من التخزين المستمر لتخزين عداد

StackOverflow https://stackoverflow.com/questions/2035808

  •  19-09-2019
  •  | 
  •  

سؤال

من خلال العداد، يمكن أن يكون pagesviews، تنزيلات، عدد الأصوات وما إلى ذلك أساسا، وليس بيانات "حاسمة للغاية".

ما هي طريقة "الأفضل" لتخزين هذه المعلومات؟ MySQL ليس خيارا جيدا. ماذا تستخدم يا رفاق؟

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

المحلول

أعتقد أنني سأذهب مع Redis، لأن:

  • Antirediz (لقبه) تنمية فعال حقا redis.. وبعد (في كل مرة عندما أنظر إلى لوحة معلومات GitHub الخاصة بي، فقد ارتكب بعض التعليمات البرمجية الجديدة). هو الآن يطور Redis وقت كامل شكرا ل vmware.
  • Redis ثابت في النهاية، لذا فإن الأداء هو Kickass (يستخدم أول ذاكرة فقط وهو سريع).
  • الأحمر لديه الذرية زيادة راتب العملية التي تحتاج إليها.
  • Redis لديه Lot Lot Liquaries PHP جيدة. هناك أيضا واحد هو مكتوب ك ج لذلك لديها أداء جيد حقا. redis الموقع يحتوي أيضا على نظرة عامة على هذه الملحقات. بعضها كود PHP النقي (قم بتشغيل Litle ولكن أبطأ، لكنه أسهل في تكوينه).

نصائح أخرى

mongodb مع uperserts هو عظيم لهذا.

إذا كنت تخزن شيئا مثل:

{ "url" : "www.example.com", "pageviews" : 0 }

يمكنك بزيادة الصفحات ازدياد بسرعة حقا بسرعة مع العملية الذرية $ Inc:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})

إذا كنت تستخدم UpserseS، فلن تضطر إلى التحقق مما إذا كان المستند موجود قبل تحديثه. على سبيل المثال، إذا قلت:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})

سيتم إنشاء المستند الذي يحتوي على عنوان URL www.example.com إذا لم يكن موجودا (مع تعيين PageViews إلى 1) أو، إذا كان موجودا، فسيتم تزويد PageViews. هذا يعني أنك لا داعي للقلق بشأن ملء المجموعة مسبقا.

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

أود أن أقول APC أو memcached هي خيارات جيدة.

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