Strategier for caching i hukommelsen og eksternt
Sammenlign forskellige caching-metoder, herunder simple caches i hukommelsen og robuste eksterne løsninger som Redis.
Strategier for caching i hukommelsen og eksternt er en gratis LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i LLM-applikationer i produktion (RAG + vektordatabase + caching), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset indeholder 4 lektioner i alt.
Introduktion til cachingstrategier
Caching er afgørende for at gøre LLM-applikationer hurtigere og mere omkostningseffektive. Men alle caches er ikke bygget ens!
I denne lektion gennemgår vi to primære strategier: caching i hukommelsen og ekstern caching. Hver strategi har unikke fordele og ulemper afhængigt af din applikations behov.
Caching i hukommelsen: Det grundlæggende
Caching i hukommelsen betyder, at data gemmes direkte i din applikations Random Access Memory (RAM). Tænk på det som en midlertidig notesblok, som din app har lige ved hånden.
- Hastighed: Det er utrolig hurtigt at tilgå data fra RAM.
- Enkelhed: Det er ofte nemt at sætte op ved hjælp af indbyggede sprogegenskaber (som ordbøger eller hash maps).
- Ingen eksterne afhængigheder: Din app behøver ikke at oprette forbindelse til en anden tjeneste.
Enkel cache i hukommelsen (Python)
Her er et grundlæggende Python-eksempel, der bruger en ordbog til at simulere en cache i hukommelsen for LLM-svar. Bemærk, hvordan efterfølgende anmodninger med den samme prompt rammer cachen.
cache = {}
def get_llm_response(prompt):
if prompt in cache:
print("Cache hit!")
return cache[prompt]
else:
print("Cache miss, calling LLM...")
# Simulate a slow LLM call
response = f"LLM response for: {prompt}"
cache[prompt] = response
return response
if __name__ == "__main__":
print(get_llm_response("What is RAG?"))
print(get_llm_response("What is RAG?"))
print(get_llm_response("Tell me a joke."))
print(get_llm_response("Tell me a joke."))Begrænsninger ved caches i hukommelsen
Selvom de er hurtige og enkle, har caches i hukommelsen betydelige ulemper for LLM-applikationer i produktion:
- Midlertidige data: Alle cachede data går tabt, hvis din applikation genstarter eller går ned.
- Begrænset skalering: Hver instans af din applikation har sin egen separate cache. Hvis du kører flere servere, deler de ikke data, hvilket fører til gentaget arbejde.
- Hukommelsesforbrug: Store caches kan bruge meget RAM og dermed potentielt påvirke din applikations samlede ydeevne.
Introduktion til ekstern caching
For at overvinde begrænsningerne ved caches i hukommelsen bruger vi eksterne cachingløsninger. De gemmer cachede data uden for din applikation, typisk på en dedikeret server eller i en dedikeret tjeneste.
Det giver flere instanser af din applikation mulighed for at tilgå og dele de samme cachede data, hvilket gør løsningen velegnet til skalerbare, distribuerede systemer.
Redis: En populær ekstern cache
Redis (Remote Dictionary Server) er et populært open source-datalager i hukommelsen. Det bruges bredt som cache, database og meddelelsesmægler på grund af den høje ydeevne og de alsidige datastrukturer.
Det er et fremragende valg til ekstern caching i LLM-applikationer, fordi det er utrolig hurtigt og designet til netværksbaseret adgang.
Fordele ved ekstern caching
Eksterne caches som Redis giver flere vigtige fordele:
- Distribueret: Flere applikationsinstanser kan dele én ensartet cache.
- Vedvarende: Data kan konfigureres til at blive gemt på disken, så de overlever genstarter af applikationen eller cacheserveren.
- Skalerbar: Cachen kan skaleres uafhængigt af din applikation og håndtere enorme mængder data og anmodninger.
- Omfattende funktioner: Redis tilbyder avancerede funktioner som Time-To-Live (TTL) til automatisk udløb af cacheindhold samt forskellige datastrukturer.
Brug af Redis til LLM-caching (Python)
Her kan du se, hvordan du kan interagere med Redis fra Python ved hjælp af biblioteket redis-py. Denne kode forudsætter, at en Redis-server kører lokalt på localhost:6379.
Den viser, hvordan du indstiller en nøgle med en udløbstid (TTL) og henter den.
import redis
import json
# Connect to Redis. Ensure a Redis server is running!
# e.g., on Docker: docker run --name my-redis -p 6379:6379 -d redis
try:
r = redis.Redis(host='localhost', port=6379, db=0)
r.ping() # Check connection
print("Connected to Redis successfully!")
except redis.exceptions.ConnectionError as e:
print(f"Could not connect to Redis: {e}")
print("Please ensure a Redis server is running on localhost:6379")
r = None # Set r to None if connection fails
def get_llm_response_from_redis(prompt):
if r is None:
return {"error": "Redis not connected, cannot cache."}
cache_key = f"llm_response:{prompt}"
cached_data = r.get(cache_key)
if cached_data:
print("Redis Cache hit!")
return json.loads(cached_data.decode('utf-8'))
else:
print("Redis Cache miss, calling LLM...")
# Simulate LLM call and create a response structure
response_data = {"text": f"LLM response for: {prompt}", "source": "LLM"}
# Cache the response for 3600 seconds (1 hour)
r.setex(cache_key, 3600, json.dumps(response_data))
return response_data
if __name__ == "__main__":
print(get_llm_response_from_redis("What is the capital of France?"))
print(get_llm_response_from_redis("What is the capital of France?"))
print(get_llm_response_from_redis("Who invented the light bulb?"))
print(get_llm_response_from_redis("Who invented the light bulb?"))Vælg den rigtige cachingstrategi
Dit valg af cachingstrategi afhænger af din applikations krav:
- Brug caches i hukommelsen, hvis:
Din applikation kører som én instans, datatab ved genstart er acceptabelt, eller du cacher meget små, midlertidige datasæt. - Brug eksterne caches (f.eks. Redis), hvis:
Du har brug for distribueret caching på tværs af flere applikationsinstanser, datavedvarende lagring er afgørende, dit datasæt er stort, eller du har brug for avancerede cachingfunktioner og skalerbarhed.
For de fleste LLM-applikationer i produktion er ekstern caching det robuste valg.
Quiz om cachingstrategier
Test din forståelse af cachingstrategier!
Opsummering: Gem din viden i cachen
Vi har udforsket de to vigtigste cachingstrategier til LLM-applikationer:
- Caches i hukommelsen er hurtige og enkle, men begrænser sig til én applikationsinstans og mister data ved genstart.
- Eksterne caches som Redis tilbyder vedvarende lagring, distribueret deling og uafhængig skalerbarhed, hvilket gør dem ideelle til robuste LLM-systemer i produktion.
Valget af den rigtige strategi afhænger af din applikations skala, behov for vedvarende datalagring og operationelle kompleksitet.
Lær LLM-applikationer i produktion (RAG + vektordatabase + caching) med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Strategier for caching i hukommelsen og eksternt” gratis?
Ja — hele teksten til “Strategier for caching i hukommelsen og eksternt” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset, skal du opgradere til CoddyKit PRO. LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Strategier for caching i hukommelsen og eksternt”?
Sammenlign forskellige caching-metoder, herunder simple caches i hukommelsen og robuste eksterne løsninger som Redis. Du øver dig i LLM-applikationer i produktion (RAG + vektordatabase + caching) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på LLM-applikationer i produktion (RAG + vektordatabase + caching)?
Der kræves ingen tidligere erfaring. LLM-applikationer i produktion (RAG + vektordatabase + caching) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Strategier for caching i hukommelsen og eksternt”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektion?
Ja. Alle LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Betydningen af caching af LLM-kald
- Strategier for caching i hukommelsen og eksternt
- Integration af caching i en RAG-pipeline
- Semantisk caching til LLM-apps