Sobes.tech
Junior — Middle

Kako se može izvršiti ažuriranje sadržaja keš servisa?

sobes.tech АИ

Одговор од АИ

Обнова садржаја кеш услуге у Go-у обично се одвија кроз неколико приступа:

  1. Директна обновa вредности по кључу — ако је кеш представљен као мапа или специјализована структура, вредност се може једноставно заменити по кључу.

  2. Користећи TTL (Time To Live) — кеш се аутоматски ажурира након истека времена трајања уноса.

  3. Механизам инвалидације — при промени података у извору, кеш се означава као застарео и ажурира се при следећем захтеву.

  4. Позадинско ажурирање (refresh) — периодично се покреће горутина која ажурира кеш према распореду.

Пример једноставног ажурирања кеша коришћењем мапе и mutex-а за безбедност у више нитова:

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
}

На овај начин, ажурирање се одвија преко методе Update, која безбедно замењује садржај по кључу.