Sobes.tech
Junior — Middle

Keshda ma'lumotlarni yangilashda foydalaniladigan algoritmlar misollarini keltira olasizmi?

sobes.tech AI

AIdan javob

Ma'lumotlarni keshda yangilashda, odatda quyidagi algoritmlar qo'llaniladi:

  • Write-through: ma'lumotlar bir vaqtning o'zida keshga va asosiy saqlashga yoziladi.
  • Write-back (Write-behind): ma'lumotlar avval keshga yoziladi, va asosiy saqlash yangilanishi keyin amalga oshiriladi.
  • Keshni bekor qilish: asosiy saqlashda ma'lumotlar o'zgartirilganda, kesh eskirgan deb belgilab, keyingi so'rovda yangilanadi.
  • Time-to-live (TTL): kesh avtomatik ravishda belgilangan vaqt o'tgach yangilanadi yoki o'chiriladi.

TTL yangilash uchun Go tilida misol:

cache := make(map[string]CacheItem)

// CacheItem ma'lumotlar va tugash vaqtini o'z ichiga oladi

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)}
}