Sobes.tech
Junior — Middle

Hogyan lehet frissíteni a cache-szolgáltatás tartalmát?

sobes.tech MI

Válasz az MI-től

A Go-ban a cache-szolgáltatás tartalmának frissítése általában több megközelítésen keresztül történik:

  1. Közvetlen értékfrissítés kulcs szerint — ha a cache map vagy egy speciális struktúra formájában van, egyszerűen lecserélhető az érték a kulcs szerint.

  2. TTL (Time To Live) használata — a cache automatikusan frissül, miután a bejegyzés élettartama lejár.

  3. Érvénytelenítési mechanizmus — a forrásban lévő adatok módosításakor a cache elavultnak van jelölve, és a következő kérésnél frissül.

  4. Háttérben történő frissítés (refresh) — időszakosan elindul egy goroutine, amely a cache-t ütemezés szerint frissíti.

Egyszerű cache frissítési példa map és mutex használatával a párhuzamos biztonság érdekében:

import "sync"

type Cache struct {
    mu    sync.Mutex
    store map[string]string
}

func (c *Cache) Update(key, value string) {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.store[key] = value
}

func (c *Cache) Get(key string) (string, bool) {
    c.mu.Lock()
    defer c.mu.Unlock()
    val, ok := c.store[key]
    return val, ok
}

Így a frissítés a Update metóduson keresztül történik, amely biztonságosan helyettesíti a tartalmat kulcs szerint.