Principal
პირდაპირი მეხსიერების ქეშის ბიბლიოთეკის დაწერა გჭირდებათ. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
sobes.tech AI
პასუხი AI-სგან
ქვემოთ მოცემულია მარტივი მეხსიერებაში დაფუძნებული ქეშის რეალიზაციის მაგალითი Go-ით, რომელიც შესაბამისია ინტერფეისთან:
type Cache interface {
Set(k, v string)
Get(k string) (v string, ok bool)
}
type SimpleCache struct {
data map[string]string
mu sync.RWMutex
}
func NewSimpleCache() *SimpleCache {
return &SimpleCache{
data: make(map[string]string),
}
}
func (c *SimpleCache) Set(k, v string) {
c.mu.Lock()
defer c.mu.Unlock()
c.data[k] = v
}
func (c *SimpleCache) Get(k string) (string, bool) {
c.mu.RLock()
defer c.mu.RUnlock()
v, ok := c.data[k]
return v, ok
}
აქ გამოიყენება mutex უსაფრთხო წვდომისთვის რუკაზე. ეს ქეში ინახავს მონაცემებს მეხსიერებაში სანამ აპლიკაცია არ გადატვირთება.