Pregunta

En nuestro proyecto que ya tiene un almacenamiento de claves-valor en la memoria incorporada para objetos, y es muy útil, ya que nos permite hacer índices para ello y consultar el almacenamiento basado en él. Por lo tanto, si tenemos una colección de s "estudiante", y un índice compuesto sobre student.group y student.sex, entonces podemos encontrar todos los estudiantes varones de grupo "ABC". Lo mismo para su eliminación y así sucesivamente.

Ahora tenemos que adoptar nuestro servicio para trabajar en una nube, por lo que habrá varios servidores, el procesamiento de las peticiones del usuario, y tienen un estado compartido, almacenada en esta clave-valor de almacenamiento indexado. Hemos tratado de adoptar memcashed para nuestras necesidades, y es casi ideal - es rápido, sencillo y solución probada, pero no tiene índices, así que no podemos utilizado para buscar nuestros datos temporales.

¿Hay alguna otra manera de tener un caché remota, al igual que el memcashed, pero con índices?

Gracias.

¿Fue útil?

Solución

Probar Hazelcast , es una cuadrícula de datos en memoria que distribuye los datos entre los servidores. Puede tener índices al igual que usted describe en su pregunta y consulta para ellos.

Su uso es muy sencillo. Sólo tiene que añadir Hazelcast.jar y empezar a programar. Puede ser tanto incrustado y remota.

Aquí está el uso de índices y consulta

índice de complemento

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

tienda en IMDG

myDistributedMap.put(student.id, student)

;

consulta

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

Por último funciona bien en la nube. Ej: EC2

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top