سؤال

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

الآن علينا أن نعتمد خدمتنا للعمل في سحابة ، بحيث يكون هناك العديد من الخوادم ، ومعالجة طلبات المستخدم ، ولديها حالة مشتركة ، مخزنة في هذا التخزين المفهرس القيمة الرئيسية. حاولنا تبني memcashed لتلبية احتياجاتنا ، وهو مثالي تقريبًا - إنه حل سريع وبسيط ومثبت ، ولكنه لا يحتوي على فهارس ، لذلك لا يمكننا استخدام بياناتنا المؤقتة.

هل هناك أي طريقة أخرى للحصول على ذاكرة التخزين المؤقت عن بُعد ، تمامًا مثل Memcashed ، ولكن مع الفهارس؟

شكرًا لك.

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

المحلول

محاولة Hazelcast, ، إنها شبكة بيانات في الذاكرة توزع البيانات بين الخوادم. يمكنك الحصول على فهارس مثلك كما تم وصفه في سؤالك والاستعلام عنهم.

الاستخدام بسيط للغاية. فقط أضف hazelcast.jar وابدأ الترميز. يمكن أن تكون مضمنة وبعيدة.

هنا هو الفهرس والاستعلام

إضافة الفهرس

IMap<Integer, Student> myDistributedMap = Hazelcast.getMap("students")
myDistributedMap.addIndex("group", false);
myDistributedMap.addIndex("sex", false);

تخزين في IMDG

myDistributedMap.put(student.id, student)

;

استفسار

Collection<Student> result = myDistributedMap.values(new SqlPredicate("sex=male AND group=ABC"));

أخيرًا ، يعمل بشكل جيد في السحابة. على سبيل المثال: EC2

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