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