Bedre databaseytelse med Memcached

Nerdvana presenterer denne gang Memcache, en løsning som skal forbedre databaseytelsen, ikke minst i webløsninger.

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.

Tidligere Nerdvana-tips
  02.03.09 Rammeverk for PHP-utvikling
  17.02.05 Presenter navigasjonsløsninger med PHP
  16.02.05 Sikrere hurtigmeldinger med Gaim-tillegg
  15.02.05 Dypdykk i eksekverbare filer
  14.02.05 Ruby-basert gjenkjenning av mønstre
  11.02.05 Modulbasert gruppevaresystem
  10.02.05 Alternativ SSH-klient for Windows
  09.02.05 Fire nettverkskameraer i ett vindu
  08.02.05 Få tak i den gamle utgaven
  07.02.05 Bedre oversikt over Windows-driverne
  03.02.05 Fjernstyr PC-en fra en nettleser
  02.02.05 Bedre satellittbilder fra hele verden
  01.02.05 Lag Flash-baserte læreprogrammer
  31.01.05 Deaktiver filbeskyttelsen i Windows
  28.01.05 Avansert konstruksjon med BRL-CAD
  27.01.05 Lær Perl-programmering for weben
  26.01.05 Lag din egen IP-telefonitjeneste
  25.01.05 Få oversikt over vinsamlingen
  24.01.05 Fersk fildeler uten annonser
  21.01.05 Enkel administrasjon av PostgreSQL
  20.01.05 Sentral oversikt over MS-programvaren
  19.01.05 Bedre nettverkssikkerhet i Windows
  18.01.05 Lag videoeffekter med Jahshaka
  17.01.05 En bedre filutforsker
  14.01.05 Virtuell Linux på minnepinnen
  13.01.05 Sikrere bruk av Windows XP
  12.01.05 Det perfekte DVD-registeret
  11.01.05 Fjerntilgang til Google Desktop-søk
  10.01.05 Hele regnestykket på én linje

Enda eldre Nerdvana-er:

Nerdvana-arkivet

Til toppen