Intern — Junior
Vai esi izmantojis kešēšanas mehānismu savos projektos?
sobes.tech AI
Atbilde no AI
Jā, Go projektos bieži izmanto kešatmiņu, lai uzlabotu veiktspēju un samazinātu ārējo resursu slodzi.
Piemēram, var izmantot iebūvētas datu struktūras, piemēram, kartes, vienkāršai atmiņas kešatmiņai, vai ārējas bibliotēkas, piemēram, golang-lru vai groupcache.
Vienkāršas kešatmiņas piemērs, izmantojot karti un mutex, lai nodrošinātu drošību vairākās pavedēs:
package main
import (
"fmt"
"sync"
)
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("foo", "bar")
if val, ok := cache.Get("foo"); ok {
fmt.Println("Kešas vērtība:", val)
} else {
fmt.Println("Vērtība nav atrasta kešā")
}
}
Šī pieeja palīdz ātri atgriezt bieži pieprasītos datus, neizmantojot atkārtotus aprēķinus vai piekļuves datu bāzei.