De fleste dynamiske webløsninger har en database i bunnen. I utgangspunktet må webserveren for hver side som skal vises, gjøre ett eller flere kall til databasesystemet. I mange tilfeller vil mange av disse kallene være de samme når neste webside skal leveres. Likevel må databasen gjøre de samme oppslagene gang på gang.
Det finnes mange muligheter for å redusere antallet oppslag, ved å ta vare på tidligere resultater.
Memcached er løsning hvor webutvikleren gis full kontroll over hvilke data som mellomlagres. Memcache kjøres som en separat server, mens en klient integreres i webapplikasjonskoden. Klienter er tilgjengelige for blant annet Perl, PHP, Python, Ruby, Java og C.
Samlinger av data man har hentet fra databasen og eventuelt etterbehandlet i webapplikasjonen før visning, kan lagres under et unikt objektnavn i Memcached. Samtidig kan de mellomlagrede dataene gis en varighet, slik at de forsvinner fra Memcached etter en gitt tid. Neste gang det er behov for å hente de samme dataene, spør webapplikasjonen først Memcached om den har disse tilgjengelig, hvis ikke, hentes de fra databasen og behandles på nytt.
De mellomlagrede dataene er ikke knyttet til noen spesiell applikasjon eller webserver, så den sammen datamengden kan hentes fra en annen applikasjon på en annen webserver ved å benytte de samme, unike objektnavnet.
Når webapplikasjonen derimot skal legge til eller erstatte data i databasen, vil også de tilsvarende, mellomlagrede dataene i Memcached oppdateres. Dette gjøres ved hjelp av en enkel instruksjon i webapplikasjonskoden.
Memcached benyttes av kjente og høyt trafikkerte nettsteder som Slashdot.org og WikiPedia.
Memcached leveres med full kildekode og kan kjøres på de fleste Unix-lignende systemer.
Lenke til:
Kommentarer/erfaringer/alternativer? Fortell om det i debattforumet nedenfor.
Nerdvana-redaksjonen tar mer enn gjerne imot flere tips om glimrende og gratis programvare for avanserte brukere og spesielt interesserte. Tipsene sendes til harald@digi.no.
Enda eldre Nerdvana-er: