كيف يمكنك خلط SQL DB مقابل مخزن القيمة المفاتيح (أي Redis)

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

  •  18-09-2019
  •  | 
  •  

سؤال

أنا أراجع رمزي وأدرك أنني أقضي فترة زمنية هائلة

  1. أخذ الصفوف من قاعدة بيانات،
  2. التنسيق ك XML،
  3. AJAX الحصول على المتصفح، ثم
  4. تحويل مرة أخرى إلى كائن JavaScript الفحص كمخدر محلي.

عند التحديثات، لا بد لي من عكس العملية (باستثناء استخدام النشر بدلا من XML).

بعد أن بدأت للتو في البحث عن Redis، أفكر في أنني أستطيع حفظ كمية هائلة من الوقت في الحفاظ على الكائنات في متجر ذات قيمة رئيسية على الخادم واستخدام JSON فقط لنقلها مباشرة إلى عميل JS. لكن عقلي الضعيف لا يمكن أن يتوقع ما أستسلمه من خلال ترك SQL DB (أي أنا خائف من التخلي عن المجموعة حسب / وجود استعلامات)

لبياناتي، لدي:

  • العديد من العلاقات، أي علامات OBJ، مجموعات OBJ، إلخ.
  • كائنات الاستعلام عن طريق مزيج من هذا، أي حيث يمكنك العلامة ('A'، 'B'، 'C') والمجموعة في ('x'، 'y')
  • تنضم ذاتي، أي جميع العلامات لكل كائن حيث tag = 'a' (sql group_concat ())
  • الكثير من الأعمال الخارجية، أي التقييم الخارجي في O.ID = التقييم
  • والأعلاف، والتي يبدو أنها نقطة قوية في Redis

كيف يمكنك مزج بنجاح القيمة الرئيسية و SQL DBS؟

على سبيل المثال، من العملي الانضمام إلى قائمة كبيرة من Obj.ids من Redis مجموعة مع بيانات SQL باستخدام استعلام SQL Range (أي حيث Obj.id في (1،4،6،7،8،34،876،879،879،9879،567،345، ...)، أو العكس؟

الأفكار / الاقتراحات مرحبا.

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

المحلول

قد ترغب في إلقاء نظرة على mongodb.. وبعد إنه يعمل مع كائنات نمط JSON، ويأتي مع SQL مثل الفهرسة والاستعلام. Redis هو أكثر ملاءمة لتخزين هياكل البيانات يحب القوائم والمجموعات، عندما تريد بحث بسيط بدلا من استفسار معقد.

نصائح أخرى

الآن أن المشكلة الفعلية هي أكثر تحديدا (أي فإنك تقضي الكثير من الوقت في كتابة رمز التحويل المتكرر للانتقال من طبقة واحدة / تمثيل إلى التالي) ربما يمكنك التفكير في الكتابة (أو googling for) شيء تلقائيا هذا، ربما؟

تعيد Googleles الكثير من النتائج عن "تحويل الجدول إلى XML" (والعكس)، هل هذه المساعدة؟ هل سيشارك شيء مباشرة من الجدول إلى أزواج مفتاح / القيمة أفضل؟ هل حاولت معالجة هذه المشكلة بطريقة تعميم؟

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

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

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