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