Sobes.tech
Intern — Junior

Loyihalaringizda kesh mexanizmini ishlatdingizmi?

sobes.tech AI

AIdan javob

Ha, Go loyihalarida ishlash samaradorligini oshirish va tashqi resurslarga yukni kamaytirish uchun kesh ishlatiladi.

Masalan, oddiy xotira kesh uchun map kabi ichki ma'lumot tuzilmalaridan foydalanish yoki golang-lru yoki groupcache kabi tashqi kutubxonalarni qo'llash mumkin.

Oddiy kesh misoli, map va mutex yordamida, ko'p oqimli xavfsizlik bilan:

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("Keshdagi qiymat:", val)
    } else {
        fmt.Println("Qiymat topilmadi")
    }
}

Bu yondashuv tez-tez so'raladigan ma'lumotlarni takroriy hisoblamasdan yoki ma'lumotlar bazasiga murojaat qilmasdan tezda qaytarishga yordam beradi.