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