Sobes.tech
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)
    }
}