nerdvana

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-tips02.03.09Rammeverk for PHP-utvikling17.02.05Presenter navigasjonsløsninger med PHP16.02.05Sikrere hurtigmeldinger med Gaim-tillegg15.02.05Dypdykk i eksekverbare filer14.02.05Ruby-basert gjenkjenning av mønstre11.02.05Modulbasert gruppevaresystem10.02.05Alternativ SSH-klient for Windows09.02.05Fire nettverkskameraer i ett vindu08.02.05Få tak i den gamle utgaven07.02.05Bedre oversikt over Windows-driverne03.02.05Fjernstyr PC-en fra en nettleser02.02.05Bedre satellittbilder fra hele verden01.02.05Lag Flash-baserte læreprogrammer31.01.05Deaktiver filbeskyttelsen i Windows28.01.05Avansert konstruksjon med BRL-CAD27.01.05Lær Perl-programmering for weben26.01.05Lag din egen IP-telefonitjeneste25.01.05Få oversikt over vinsamlingen24.01.05Fersk fildeler uten annonser21.01.05Enkel administrasjon av PostgreSQL20.01.05Sentral oversikt over MS-programvaren19.01.05Bedre nettverkssikkerhet i Windows18.01.05Lag videoeffekter med Jahshaka17.01.05En bedre filutforsker14.01.05Virtuell Linux på minnepinnen13.01.05Sikrere bruk av Windows XP12.01.05Det perfekte DVD-registeret11.01.05Fjerntilgang til Google Desktop-søk10.01.05Hele regnestykket på én linjeTidligere Nerdvana-tips02.03.09Rammeverk for PHP-utvikling17.02.05Presenter navigasjonsløsninger med PHP16.02.05Sikrere hurtigmeldinger med Gaim-tillegg15.02.05Dypdykk i eksekverbare filer14.02.05Ruby-basert gjenkjenning av mønstre11.02.05Modulbasert gruppevaresystem10.02.05Alternativ SSH-klient for Windows09.02.05Fire nettverkskameraer i ett vindu08.02.05Få tak i den gamle utgaven07.02.05Bedre oversikt over Windows-driverne03.02.05Fjernstyr PC-en fra en nettleser02.02.05Bedre satellittbilder fra hele verden01.02.05Lag Flash-baserte læreprogrammer31.01.05Deaktiver filbeskyttelsen i Windows28.01.05Avansert konstruksjon med BRL-CAD27.01.05Lær Perl-programmering for weben26.01.05Lag din egen IP-telefonitjeneste25.01.05Få oversikt over vinsamlingen24.01.05Fersk fildeler uten annonser21.01.05Enkel administrasjon av PostgreSQL20.01.05Sentral oversikt over MS-programvaren19.01.05Bedre nettverkssikkerhet i Windows18.01.05Lag videoeffekter med Jahshaka17.01.05En bedre filutforsker14.01.05Virtuell Linux på minnepinnen13.01.05Sikrere bruk av Windows XP12.01.05Det perfekte DVD-registeret11.01.05Fjerntilgang til Google Desktop-søk10.01.05Hele regnestykket på én linje
Tidligere Nerdvana-tips
02.03.09Rammeverk for PHP-utvikling
17.02.05Presenter navigasjonsløsninger med PHP
16.02.05Sikrere hurtigmeldinger med Gaim-tillegg
15.02.05Dypdykk i eksekverbare filer
14.02.05Ruby-basert gjenkjenning av mønstre
11.02.05Modulbasert gruppevaresystem
10.02.05Alternativ SSH-klient for Windows
09.02.05Fire nettverkskameraer i ett vindu
08.02.05Få tak i den gamle utgaven
07.02.05Bedre oversikt over Windows-driverne
03.02.05Fjernstyr PC-en fra en nettleser
02.02.05Bedre satellittbilder fra hele verden
01.02.05Lag Flash-baserte læreprogrammer
31.01.05Deaktiver filbeskyttelsen i Windows
28.01.05Avansert konstruksjon med BRL-CAD
27.01.05Lær Perl-programmering for weben
26.01.05Lag din egen IP-telefonitjeneste
25.01.05Få oversikt over vinsamlingen
24.01.05Fersk fildeler uten annonser
21.01.05Enkel administrasjon av PostgreSQL
20.01.05Sentral oversikt over MS-programvaren
19.01.05Bedre nettverkssikkerhet i Windows
18.01.05Lag videoeffekter med Jahshaka
17.01.05En bedre filutforsker
14.01.05Virtuell Linux på minnepinnen
13.01.05Sikrere bruk av Windows XP
12.01.05Det perfekte DVD-registeret
11.01.05Fjerntilgang til Google Desktop-søk
10.01.05Hele regnestykket på én linje

Enda eldre Nerdvana-er:

Nerdvana-arkivet

Powered by Labrador CMS