2009-09-04 24 views
8

Las imágenes del perfil de usuario se almacenan en un servidor de archivos separado, y estoy pensando en almacenarlas en caché en memcached. El servidor de memcached es local para la aplicación, y cada imagen tiene menos de 1 MB.Almacenamiento en caché de imágenes en Memcached

Pero vi más de here que usar memcached para imágenes es una mala idea. ¿Es realmente? Realmente no estoy convencido.

¿Alguna recomendación y mejores prácticas? Estoy usando SpyMemcached Java Client.

Respuesta

5

Linux almacena en caché automáticamente los archivos que se leen desde el disco. Los proxies de caché como Squid también son buenos para almacenar en caché las imágenes.

Entonces ... ciertamente hay mejores herramientas para el trabajo. Por otro lado, nginx recientemente agregó soporte de memcached. Sin contexto, es muy difícil juzgar esa recomendación.

Pueden significar "No mostrar imágenes de memcached a través de un script PHP", en cuyo caso, son absolutamente correctas: PHP agrega toneladas de sobrecarga. Pero no necesariamente veo cómo usar la característica de Memcache de Nginx para almacenar y servir imágenes sería algo malo.

Editar: Parece que facebook may have cached profile images in memcached en un punto.

+1

Ya estoy usando memcached para mi aplicación y almacenamiento de muchas cosas, y por lo tanto, la tentación de usar Memcached para imágenes en lugar de usar otras formas significó esp para el almacenamiento en caché de archivos. – Langali

+0

Tenga cuidado: apache puede servir imágenes desde el disco en menos tiempo que su framework PHP para iniciarse. Realícelo comparándolo usted mismo, pero verá que los servidores web son realmente buenos para servir archivos planos. –

+0

Tengo 3 servidores de Apache frente a 3 instancias de tomcat, hablando con un servidor de archivos separado. Lo ideal sería simplemente descargarlo a CDN o incluso almacenar localmente en apache, pero necesito proteger el acceso a esas imágenes en función de los roles. Eso me limita a serverlo de Tomcat. Y por lo tanto, un caché distribuido en la misma red es por lo que Memcached tiene sentido para mí. Veré lo que dicen mis puntos de referencia. – Langali

Cuestiones relacionadas