Back to questions
Касперский
Junior — Middle
100
Можешь привести примеры алгоритмов использования при обновлении данных в кэше?
Companies where asked
Answer from AI
sobes.tech AI
При обновлении данных в кэше часто применяются следующие алгоритмы:
- Write-through: данные записываются одновременно и в кэш, и в основное хранилище.
- Write-back (Write-behind): данные сначала записываются в кэш, а обновление основного хранилища происходит позже.
- Cache invalidation: при изменении данных в основном хранилище кэш помечается как устаревший и обновляется при следующем запросе.
- 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)}
}