Intern — Junior
Жоболоруңда кэш механизмин колдондуңбу?
sobes.tech AI
AIден жооп
Ооба, Go долбоорлорунда көбүнчө иштөө жөндөмдүүлүгүн жакшыртуу жана тышкы ресурстарга жүктөмдү азайтуу үчүн кэш колдонулат.
Мисалы, ички түзүлүштөрдү, мисалы, map, колдонуп, жөнөкөй эс тутумдагы кэшти түзсө болот, же тышкы китепканалар, мисалы, golang-lru же groupcache.
Жөнөкөй кэштин мисалы, көп агымдуу коопсуздукту камсыздоо үчүн 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("Кэштеги мааниси:", val)
} else {
fmt.Println("Маалымат кэште табылган жок")
}
}
Бул ыкма көп суралган маалыматтарды тез кайтарууга жардам берет, кайра эсептөөлөрдү же базага кайрылууларды кыскартуу менен.