2009-09-04 11 views
8

Obrazy profilu użytkownika przechowywane są w oddzielnym serwerze plików i myślę o zapisaniu ich w pamięci podręcznej. Memcached server jest lokalny dla aplikacji, a każdy obraz jest mniejszy niż 1 MB.Buforowanie obrazów w Memcached

Ale widziałem ponad here, że używanie memcached do zdjęć jest złym pomysłem. Czy to naprawdę? Naprawdę nie jestem przekonany.

Jakieś sprawdzone metody i sugestie? Używam SpyMemcached Java Client.

Odpowiedz

5

Linux automatycznie buforuje pliki, które są odczytywane z dysku. Próby buforowania, takie jak Squid, są również dobre w buforowaniu obrazów.

Więc ... na pewno są lepsze narzędzia do pracy. Z drugiej strony nginx dodał ostatnio obsługę memcached. Bez kontekstu naprawdę trudno jest ocenić to zalecenie.

Mogą one oznaczać "Nie wyświetlaj obrazów z memcached za pomocą skryptu PHP", w takim przypadku są absolutnie poprawne - PHP dodaje mnóstwo nakładów. Ale niekoniecznie widzę, jak używanie funkcji memcache Nginx do przechowywania i wyświetlania zdjęć byłoby złym rozwiązaniem.

Edytuj: Wygląda na to, że w jednym punkcie jest facebook may have cached profile images in memcached.

+1

Używam już memcached do mojej aplikacji i przechowywania wielu rzeczy, a więc pokusę, aby pójść z Memcached dla obrazów, zamiast używać innych sposobów przeznaczonych specjalnie dla buforowania plików. – Langali

+0

Ostrzegam: Apache może wyświetlać obrazy z dysku w czasie krótszym niż czas potrzebny na uruchomienie środowiska PHP. Skorzystaj z tego samodzielnie, ale przekonasz się, że serwery internetowe naprawdę dobrze obsługują pliki płaskie. –

+0

Mam 3 serwery apache przed 3 instancjami tomcat, rozmawiając z oddzielnym serwerem plików. Idealnie byłoby po prostu przenieść go do CDN lub nawet przechowywać lokalnie do Apache, ale muszę chronić dostęp do tych obrazów w oparciu o role. To ogranicza mnie do serwerowania go z tomcat. A zatem rozproszona pamięć podręczna w tej samej sieci jest powodem, dla której Memcached ma sens. Zobaczę, co mówią moje benchmarki. – Langali