Remember & Type-Safe API
Use cache.Remember and cache.RememberT to fetch from cache or compute and store. Values are JSON-serialized for distributed backends.
Remember
Gets from cache or calls the callback, stores the result, and returns it.
v, err := cache.Remember("user:1", 10*time.Minute, func() (any, error) {
var u User
err := database.Get().First(&u, 1).Error
return u, err
})
RememberT (type-safe)
Same as Remember but returns a typed value. Use for structs and slices.
user, err := cache.RememberT("user:1", 10*time.Minute, func() (User, error) {
var u User
err := database.Get().First(&u, 1).Error
return u, err
})
// For slices
users, err := cache.RememberT("users:active", 5*time.Minute, func() ([]User, error) {
var list []User
err := database.Get().Where("active = ?", true).Find(&list).Error
return list, err
})
Set, Get, Delete
cache.Set("key", value, 10*time.Minute)
if v, ok := cache.Get("key"); ok {
// use v
}
cache.Delete("key")