Middle
Mi az a cache és miért szükséges?
sobes.tech MI
Válasz az MI-től
A gyorsítótárazás (cache-elés) az erőforrásigényes műveletek (például számítások, adatbázis lekérdezések vagy külső szolgáltatások) eredményeinek gyors eléréshez történő tárolását jelenti, hogy a későbbi kérésnél már készen álló adatokat használhassuk, ahelyett, hogy újra végrehajtanánk az adott műveletet.
A gyorsítótárazás célja:
- Gyorsítja az alkalmazás működését, csökkentve a válaszidőt.
- Csökkenti az erőforrásokra (adatbázis, hálózat, CPU) nehezedő terhelést.
- Javítja a rendszer skálázhatóságát.
Go-ban a gyorsítótárazást gyakran beépített adatszerkezetek (map) vagy specializált könyvtárak segítségével valósítják meg, például memória-alapú cache-ekhez. Egyszerű cache példája Go-ban:
package main
import (
"fmt"
"sync"
"time"
)
type Cache struct {
mu sync.Mutex
store map[string]string
}
func NewCache() *Cache {
return &Cache{store: make(map[string]string)}
}
func (c *Cache) Get(key string) (string, bool) {
c.mu.Lock()
defer c.mu.Unlock()
val, ok := c.store[key]
return val, ok
}
func (c *Cache) Set(key, value string) {
c.mu.Lock()
defer c.mu.Unlock()
c.store[key] = value
}
func main() {
cache := NewCache()
cache.Set("time", time.Now().String())
if val, ok := cache.Get("time"); ok {
fmt.Println("Cache érték:", val)
}
}