سؤال

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

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

المحلول

Redis ليس كذلك مستخدم منتشرة كخضورة "متينة" (بمعنى "D" في الحمض.)، حتى مع اليومية. معظم حالات الاستخدام تضحية عمدا القليل من المتانة في مقابل السرعة.

ومع ذلك، يمكن تكوين وضع التخزين "إلحاق الملفات فقط" اختياريا للعمل بطريقة متينة، بتكلفة الأداء. سوف تضطر لدفع ثمن fsync () على كل تعديل. لتكوين هذا، قم بتعيين هذين الخيارين في ملف .conf الخاص بك:

 appendonly yes
 appendfsync always

من المستندات: ما مدى دافع ملف إلحاق فقط؟

تحقق Redis.conf، يمكنك تكوين عدد المرات التي سيقوم بها Redis fsync () البيانات على القرص. هناك ثلاثة خيارات:

  • fsync () في كل مرة يتم إلحاق أمر جديد على ملف سجل إلحلق. بطيئة جدا جدا، آمنة جدا.
  • fsync () مرة واحدة كل ثانية. بسرعة كافية، ويمكنك أن تفقد 1 ثانية من البيانات إذا كان هناك كارثة.
  • أبدا fsync ()، فقط ضع بياناتك في أيدي نظام التشغيل. طريقة أسرع وغير مفيدة.

(لاحظ أن الافتراضي ل Appendfsync في ملف التكوين الشحن مع Redis Post-2.0.0 everysec, ، و لا always.)

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