Intern — Junior
Омӯзиши механизмҳои кэш дар лоиҳахоятон истифода бурдед?
sobes.tech AI
Ҷавоб аз AI
Бале, дар лоиҳаҳои Go одатан барои беҳтар кардани иҷроиш ва кам кардани бор дар захираҳои беруна caching истифода мешавад.
Масалан, метавон структураҳои додаҳои дохилӣ, монанди map, барои cache оддӣ дар хотира, ё китобхонаҳои беруна, мисли golang-lru ё groupcache истифода бурд.
Маслиҳати cache-и оддӣ бо истифода аз map ва mutex барои бехатарии бисёрсоҳавӣ:
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("Арзиши дар cache:", val)
} else {
fmt.Println("Арзиши дар cache ёфт нашуд")
}
}
Ин усул кӯмак мекунад, ки маълумоти зуд-зуд дархостшаванда бидуни ҳисобҳои такрорӣ ё зангҳои ба базаи додаҳо баргардонида шаванд.