Sobes.tech
Junior — Middle

Можеш ли да наведеш примере алгоритама који се користе при ажурирању података у кешу?

sobes.tech АИ

Одговор од АИ

При ажурирању података у кешу често се примењују следећи алгоритми:

  • Write-through: подаци се истовремено записују у кеш и у главно складиште.
  • Write-back (Write-behind): подаци се најпре записују у кеш, а ажурирање главног складишта се одвија касније.
  • Invalidacija кеша: при промени података у главном складишту, кеш се означава као застарео и ажурира се при следећем захтеву.
  • Time-to-live (TTL): кеш се аутоматски ажурира или брише након истека одређеног времена.

Пример у Go за TTL ажурирање кеша:

cache := make(map[string]CacheItem)

// CacheItem садржи податке и време истека

type CacheItem struct {
    Data      interface{}
    ExpiresAt time.Time
}

func GetFromCache(key string) (interface{}, bool) {
    item, found := cache[key]
    if !found || time.Now().After(item.ExpiresAt) {
        return nil, false
    }
    return item.Data, true
}

func SetToCache(key string, data interface{}, duration time.Duration) {
    cache[key] = CacheItem{Data: data, ExpiresAt: time.Now().Add(duration)}
}