Sobes.tech
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 ёфт нашуд")
    }
}

Ин усул кӯмак мекунад, ки маълумоти зуд-зуд дархостшаванда бидуни ҳисобҳои такрорӣ ё зангҳои ба базаи додаҳо баргардонида шаванд.