Sobes.tech
Middle

Mis on vahemälu ja milleks see on vajalik?

sobes.tech AI

Vastus AI-lt

Küpsiste saldēšana ir process, kurā tiek saglabāti dārgi operāciju (piemēram, aprēķinu, datu bāzes vaicājumu vai ārēju pakalpojumu) rezultāti ātrai piekļuvei, lai atkārtotas pieprasījuma gadījumā varētu izmantot jau sagatavotos datus, nevis veikt operāciju no jauna.

Kāpēc ir nepieciešama kešošana:

  • Paātrina lietojumprogrammas darbību, samazinot reakcijas laiku.
  • Samazina resursu (datu bāze, tīkls, CPU) slodzi.
  • Uzlabo sistēmas mērogojamību.

Go valodā kešošanu bieži realizē ar iebūvētām datu struktūrām (karte) vai specializētām bibliotēkām, piemēram, iekšējai atmiņas kešatmiņai. Vienkāršs Go kešatmiņas piemērs:

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("Kešētā vērtība:", val)
    }
}