Sobes.tech
Junior — Middle

Масаланҳо дар бораи алгоритмҳои истифода дар навсозии маълумот дар кешро метавонед диҳед?

sobes.tech AI

Ҷавоб аз AI

При навсегда обновяване на данни в кеша често се прилагат следните алгоритми:

  • Write-through: данните се записват едновременно в кеша и в основното хранилище.
  • Write-back (Write-behind): данните първо се записват в кеша, а актуализацията на основното хранилище се извършва по-късно.
  • Invalidation на кеша: при промяна на данните в основното хранилище, кешът се маркира като остарял и се актуализира при следващия заявка.
  • 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)}
}