Intern — Junior
As-tu utilisé un mécanisme de mise en cache dans tes projets?
sobes.tech IA
Réponse de l'IA
Oui, dans les projets en Go, la mise en cache est souvent utilisée pour améliorer les performances et réduire la charge sur les ressources externes.
Par exemple, on peut utiliser des structures de données intégrées, comme les maps, pour une cache simple en mémoire, ou des bibliothèques tierces, comme golang-lru ou groupcache.
Exemple d'une cache simple utilisant une map et un mutex pour la sécurité en concurrence :
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("Valeur en cache :", val)
} else {
fmt.Println("Valeur non trouvée dans le cache")
}
}
Cette approche permet de retourner rapidement des données fréquemment demandées sans recalculs ou appels à la base de données.