net mvc control cache asp c# asp.net caching memcached

c# - control - mvc response cache



¿Qué cliente Memcached.NET usas, EnyimMemcached vs. BeITMemcached? (4)

Parece que tanto EnyimMemcached ( https://github.com/enyim/EnyimMemcached ) como BeITMemcached ( http://code.google.com/p/beitmemcached/ ) son bibliotecas populares de .NET Memcached. Ambos son proyectos razonablemente activos en desarrollo y tienen más de mil descargas. ¡Intentando averiguar cuál usar pero encontró comentarios que compiten! Leí otra post relacionada, pero aún quiero preguntarle a más personas sobre esto antes de tomar una decisión.

Reclamaciones EnyimMemcached en la página principal de su proyecto ( https://github.com/enyim/EnyimMemcached ), que

en base a nuestra prueba de rendimiento interna no divulgada, especialmente hecha a mano, somos el cliente de C # más veloz jamás, utilizando una cantidad negativa de recursos del sistema, ya sea memoria o tiempo de CPU

y

seguimos la especificación de protocolo de memcached tan estrictamente como nadie más: incluso los tipos de memcached nos preguntan si no entienden algo

Mientras que BeITMemcached afirma en su página wiki del proyecto ( http://code.google.com/p/beitmemcached/wiki/Features ) que

Hemos realizado pruebas funcionales extensas y pruebas de rendimiento del cliente BeIT Memcached y estamos satisfechos de que esté funcionando como debería. Cuando comparamos el rendimiento con otros dos clientes, el puerto de Java y el https://github.com/enyim/EnyimMemcached , nuestro cliente consumió menos recursos y tuvo el mejor rendimiento. También está siguiendo las especificaciones de protocolo de memcached de forma más estricta, tiene la mayoría de las características de memcached y aún es mucho más pequeño en el tamaño de código real.

Entonces, para aquellos que tienen experiencia en esto o algo similar, ¿qué cliente eligió usar y posiblemente por qué eligió el que eligió?

Gracias,

Rayo.



He encontrado que Enyim funciona mejor. Es fácil de usar, confiable y rápido :)


La tienda del cliente de Eniym () a veces no funciona correctamente. Ocurre cuando la clave no se presenta en la memoria caché, en la mayoría de los casos después de reiniciar el servicio de memcached. Esta construcción:

T val = _client.Get<T>(key); if (val == null) { // ... filling val variable ... var result = _client.Store(StoreMode.Add, key, val); // ... result can be false, sometimes ... }

funciona 50/50. La entidad T es [Serializable].


Probamos ambos y descubrimos que Enyim realizaba lo mejor para nuestro escenario de uso esperado: muchos (pero no millones) objetos almacenados en caché y millones de solicitudes de obtención de memoria caché (carga promedio de concurrencia del sitio web = 16-20 solicitudes).

Nuestro factor de rendimiento fue medir el tiempo desde hacer la solicitud hasta tener el objeto inicializado en la memoria en el servidor de llamadas. Ambas bibliotecas habrían sostenido el trabajo, pero el cliente enyim fue preferido en nuestras pruebas.