Sobes.tech
Middle

Kas yra talpykla ir kam ji reikalinga?

sobes.tech AI

Atsakymas iš AI

Kepimo yra procesas, kai išsaugomi brangūs operacijų (pavyzdžiui, skaičiavimų, duomenų bazės užklausų ar išorinių paslaugų) rezultatai, kad juos būtų galima greitai pasiekti, ir pakartotinai užklausus, būtų galima naudoti jau paruoštus duomenis, o ne vėl vykdyti operaciją.

Kepimo tikslas:

  • Pagrindžia programos veikimą, sumažindamas atsako laiką.
  • Sumažina išteklių (duomenų bazės, tinklo, CPU) apkrovą.
  • Pagerina sistemos mastelį.

Go kalboje kepimas dažnai įgyvendinamas naudojant įmontuotas duomenų struktūras (map) arba specializuotas bibliotekas, pavyzdžiui, atmintyje esančiam cache. Paprasto Go cache pavyzdys:

package main

import (
    "fmt"
    "sync"
    "time"
)

type Cache struct {
    mu    sync.Mutex
    store map[string]string
}

func NewCache() *Cache {
    return &Cache{store: make(map[string]string)}
}

func (c *Cache) Get(key string) (string, bool) {
    c.mu.Lock()
    defer c.mu.Unlock()
    val, ok := c.store[key]
    return val, ok
}

func (c *Cache) Set(key, value string) {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.store[key] = value
}

func main() {
    cache := NewCache()
    cache.Set("time", time.Now().String())

    if val, ok := cache.Get("time"); ok {
        fmt.Println("Kepimo reikšmė:", val)
    }
}