Sobes.tech
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("Маалымат кэште табылган жок")
    }
}

Бул ыкма көп суралган маалыматтарды тез кайтарууга жардам берет, кайра эсептөөлөрдү же базага кайрылууларды кыскартуу менен.