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.