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("მნიშვნელობა ქეშში ვერ მოიძებნა")
}
}
ეს მიდგომა ეხმარება სწრაფად დაბრუნდეს ხშირად მოთხოვნილი მონაცემები, გამეორებითი გამოთვლების ან ბაზის მიმართვების გარეშე.