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")