Sobes.tech
Junior — Middle

Кэште маалыматтарды жаңылоодо колдонулган алгоритмдердин мисалдарын келтире аласызбы?

sobes.tech AI

AIден жооп

Маалыматтарды кэште жаңылоодо көбүнчө төмөнкү алгоритмдер колдонулат:

  • Write-through: маалыматтар бирдей убакта кэшке жана негизги сактоого жазылат.
  • Write-back (Write-behind): маалыматтар биринчи кэшке жазылат, жана негизги сактоого жаңылоо кийинчерээк болот.
  • Кэшти жараксыз кылуу: негизги сактоодо маалыматтар өзгөргөндө, кэш эскирген деп белгиленип, кийинки суроодо жаңыланат.
  • 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)}
}