Documentation ¶
Overview ¶
Package gcache 提供了多种用于进程的缓存管理功能。
默认情况下,它提供了一个线程安全的内存缓存适配器,用于进程中的缓存管理。
Index ¶
- Constants
- func X删除(上下文 context.Context, 名称s []interface{}) error
- func X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (可选值 *泛型类.Var, 错误 error)
- func X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error)
- func X取值PANI(上下文 context.Context, 名称 interface{}) *泛型类.Var
- func X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (*泛型类.Var, error)
- func X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) *泛型类.Var
- func X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (*泛型类.Var, error)
- func X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) *泛型类.Var
- func X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (*泛型类.Var, error)
- func X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) *泛型类.Var
- func X取所有值(上下文 context.Context) ([]interface{}, error)
- func X取所有值PANI(上下文 context.Context) []interface{}
- func X取所有键(上下文 context.Context) ([]interface{}, error)
- func X取所有键PANI(上下文 context.Context) []interface{}
- func X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
- func X取所有键值Map副本PANI(上下文 context.Context) map[interface{}]interface{}
- func X取所有键文本(上下文 context.Context) ([]string, error)
- func X取所有键文本PANI(上下文 context.Context) []string
- func X取数量(上下文 context.Context) (int, error)
- func X取数量PANI(上下文 context.Context) int
- func X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)
- func X取过期时间PANI(上下文 context.Context, 名称 interface{}) time.Duration
- func X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
- func X是否存在PANI(上下文 context.Context, 名称 interface{}) bool
- func X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否存在 bool, 错误 error)
- func X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
- func X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, ...) error
- func X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) error
- func X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (bool, error)
- func X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (bool, error)
- func X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (bool, error)
- type Adapter
- type AdapterMemory
- func (c *AdapterMemory) X关闭(上下文 context.Context) error
- func (c *AdapterMemory) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (*泛型类.Var, error)
- func (c *AdapterMemory) X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error)
- func (c *AdapterMemory) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (*泛型类.Var, error)
- func (c *AdapterMemory) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (*泛型类.Var, error)
- func (c *AdapterMemory) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (*泛型类.Var, error)
- func (c *AdapterMemory) X取所有值(上下文 context.Context) ([]interface{}, error)
- func (c *AdapterMemory) X取所有键(上下文 context.Context) ([]interface{}, error)
- func (c *AdapterMemory) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
- func (c *AdapterMemory) X取数量(上下文 context.Context) (数量 int, 错误 error)
- func (c *AdapterMemory) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)
- func (c *AdapterMemory) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
- func (c *AdapterMemory) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否已存在 bool, 错误 error)
- func (c *AdapterMemory) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
- func (c *AdapterMemory) X清空(上下文 context.Context) error
- func (c *AdapterMemory) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, ...) error
- func (c *AdapterMemory) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) error
- func (c *AdapterMemory) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (bool, error)
- func (c *AdapterMemory) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (bool, error)
- func (c *AdapterMemory) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (bool, error)
- type AdapterRedis
- func (c *AdapterRedis) X关闭(上下文 context.Context) error
- func (c *AdapterRedis) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (最后一个删除值 *泛型类.Var, 错误 error)
- func (c *AdapterRedis) X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error)
- func (c *AdapterRedis) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (结果 *泛型类.Var, 错误 error)
- func (c *AdapterRedis) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (结果 *泛型类.Var, 错误 error)
- func (c *AdapterRedis) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (结果 *泛型类.Var, 错误 error)
- func (c *AdapterRedis) X取所有值(上下文 context.Context) ([]interface{}, error)
- func (c *AdapterRedis) X取所有键(上下文 context.Context) ([]interface{}, error)
- func (c *AdapterRedis) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
- func (c *AdapterRedis) X取数量(上下文 context.Context) (数量 int, 错误 error)
- func (c *AdapterRedis) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)
- func (c *AdapterRedis) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
- func (c *AdapterRedis) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否存在 bool, 错误 error)
- func (c *AdapterRedis) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
- func (c *AdapterRedis) X清空(上下文 context.Context) (错误 error)
- func (c *AdapterRedis) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, ...) error
- func (c *AdapterRedis) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (错误 error)
- func (c *AdapterRedis) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (bool, error)
- func (c *AdapterRedis) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (成功 bool, 错误 error)
- func (c *AdapterRedis) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) (成功 bool, 错误 error)
- type Cache
- func (c *Cache) X删除(上下文 context.Context, 名称s []interface{}) error
- func (c *Cache) X取值PANI(上下文 context.Context, 名称 interface{}) *泛型类.Var
- func (c *Cache) X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) *泛型类.Var
- func (c *Cache) X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) *泛型类.Var
- func (c *Cache) X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, ...) *泛型类.Var
- func (c *Cache) X取所有值PANI(上下文 context.Context) []interface{}
- func (c *Cache) X取所有键PANI(上下文 context.Context) []interface{}
- func (c *Cache) X取所有键值Map副本PANI(上下文 context.Context) map[interface{}]interface{}
- func (c *Cache) X取所有键文本(上下文 context.Context) ([]string, error)
- func (c *Cache) X取所有键文本PANI(上下文 context.Context) []string
- func (c *Cache) X取数量PANI(上下文 context.Context) int
- func (c *Cache) X取过期时间PANI(上下文 context.Context, 名称 interface{}) time.Duration
- func (c *Cache) X取适配器() Adapter
- func (c *Cache) X是否存在PANI(上下文 context.Context, 名称 interface{}) bool
- func (c *Cache) X设置适配器(适配器 Adapter)
- type Func
Constants ¶
const (
DurationNoExpire = 0 // Expire 永不过期的持续时间。
)
Variables ¶
This section is empty.
Functions ¶
func X取值 ¶
Get 方法通过给定的 `key` 获取并返回关联的值。 若该 `key` 对应的值不存在,或者其值为 nil,或已过期,则返回 nil。 如果你想检查 `key` 是否存在于缓存中,最好使用 Contains 函数。
func X取值或设置值 ¶
func X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (*泛型类.Var, error)
GetOrSet 获取并返回键`key`的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 键值对在`duration`时间后过期。
如果`duration` == 0,则不会过期。 如果`duration` < 0 或者给定的`value`为nil,则删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。
func X取值或设置值PANI ¶
MustGetOrSet 行为类似于 GetOrSet,但是当发生任何错误时,它会触发panic(异常)。
func X取值或设置值_函数 ¶
GetOrSetFunc 函数用于获取并返回 `key` 对应的值,如果 `key` 不存在于缓存中,则使用函数 `f` 的结果设置 `key` 并返回其结果。 这对键值在 `duration` 时间后将自动过期。
如果 `duration` 等于 0,则表示该键值对永不过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,则会删除 `key`,但如果 `value` 是一个函数且函数结果为 nil,则不做任何操作。
func X取值或设置值_函数PANI ¶
MustGetOrSetFunc 行为类似于 GetOrSetFunc,但当发生任何错误时它会触发panic。
func X取值或设置值_并发安全函数 ¶
func X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (*泛型类.Var, error)
GetOrSetFuncLock 从缓存中获取并返回`key`的值,如果`key`不存在,则使用函数`f`的结果设置`key`并返回其结果。键值对在`duration`时间后过期。 如果`duration`为0,则它不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。 注意,该方法与函数`GetOrSetFunc`的不同之处在于,为了保证并发安全,函数`f`在写入互斥锁内执行。
func X取值或设置值_并发安全函数PANI ¶
MustGetOrSetFuncLock 类似于 GetOrSetFuncLock,但如果发生任何错误,它会触发 panic。
func X取所有键值Map副本 ¶
Data 返回缓存中所有键值对的副本,类型为 map。注意,此函数可能会导致大量内存使用, 因此请按需实现该函数。
func X取所有键值Map副本PANI ¶
MustData 的行为类似于 Data,但是当发生任何错误时它会触发panic(异常)。
func X取所有键文本PANI ¶
MustKeyStrings 行为类似 KeyStrings,但当发生任何错误时,它会引发 panic。
func X取过期时间PANI ¶
MustGetExpire 的行为类似于 GetExpire,但是当发生任何错误时,它会触发panic。
func X更新值 ¶
Update 更新`key`的值,但不改变其过期时间,并返回旧值。 返回的布尔值`exist`,如果`key`在缓存中不存在,则为false。
如果给定的`value`为nil,则删除`key`。 若`key`在缓存中不存在,则不做任何操作。
func X更新过期时间 ¶
UpdateExpire 更新键 `key` 的过期时间,并返回旧的过期持续时长值。
若 `key` 不存在于缓存中,则返回 -1 并不做任何操作。 若 `duration` 小于 0,则删除 `key`。
func X设置Map ¶
SetMap 批量设置缓存,通过 `data` 参数中的键值对进行设置,并在 `duration` 时间后过期。
如果 `duration` == 0,则表示永不过期。 如果 `duration` < 0 或者给定的 `value` 为 nil,则会删除 `data` 中的键。
func X设置值 ¶
Set 通过 `key`-`value` 对设置缓存,该对在 `duration` 后过期。
如果 `duration` == 0,则永不过期。 如果 `duration` < 0 或提供的 `value` 为 nil,则删除 `data` 的键。
func X设置值并跳过已存在 ¶
SetIfNotExist 若`key`不存在于缓存中,则设置带有`key`-`value`对的缓存,该对在`duration`后过期。 如果`key`在缓存中不存在,它将返回true,并成功将`value`设置到缓存中,否则返回false。
如果`duration` == 0,则不会设置过期时间。 如果`duration` < 0 或给定的`value`为nil,则删除`key`。
func X设置值并跳过已存在_函数 ¶
SetIfNotExistFunc 函数用于设置 `key` 为函数 `f` 的计算结果,并在 `key` 不存在于缓存中时返回 true, 否则如果 `key` 已存在,则不做任何操作并返回 false。
参数 `value` 可以是类型 `func() interface{}`,但如果其结果为 nil,则该函数不会执行任何操作。
如果 `duration` == 0,则不设置过期时间。 如果 `duration` < 0 或给定的 `value` 为 nil,则会删除 `key`。
func X设置值并跳过已存在_并发安全函数 ¶
func X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (bool, error)
SetIfNotExistFuncLock 将通过函数 `f` 计算的结果设置为 `key` 的值,并在以下情况下返回 true: 1. 如果 `key` 不存在于缓存中,则设置并返回 true。 2. 否则,如果 `key` 已经存在,则不做任何操作并返回 false。 若 `duration` 等于 0,则不设置过期时间。 若 `duration` 小于 0 或提供的 `value` 为 nil,则删除 `key`。 注意,此方法与函数 `SetIfNotExistFunc` 的不同之处在于, 函数 `f` 在写入互斥锁保护下执行,以确保并发安全。
Types ¶
type Adapter ¶
type Adapter interface { // Set 用 `key`-`value` 对设置缓存,该对在 `duration` 后过期。 // // 如果 `duration` == 0,则永不过期。 // 如果 `duration` < 0 或给定的 `value` 为 nil,则会删除 `data` 的键。 X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) error // SetMap 批量设置缓存,通过 `data` 参数中的键值对进行设置,并在 `duration` 时间后过期。 // // 如果 `duration` == 0,则表示永不过期。 // 如果 `duration` < 0 或者给定的 `value` 为 nil,则表示删除 `data` 中的相应键。 X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, 时长 time.Duration) error // SetIfNotExist 如果`key`不存在于缓存中,则设置带有`key`-`value`对的缓存,并在`duration`后过期。 // 如果`key`在缓存中不存在,它将返回true,并成功将`value`设置到缓存中,否则返回false。 // // 如果`duration` == 0,则不会过期。 // 如果`duration` < 0 或给定的`value`为nil,则删除`key`。 X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (ok bool, err error) // SetIfNotExistFunc 设置键`key`为函数`f`的结果,并在`key`不存在于缓存中时返回true, // 否则如果`key`已存在,则不做任何操作并返回false。 // // 参数`value`可以是`func() interface{}`类型,但如果其结果为nil,则不会执行任何操作。 // // 如果`duration` == 0,则不设置过期时间。 // 如果`duration` < 0 或给定的`value`为nil,则会删除`key`。 X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (ok bool, err error) // SetIfNotExistFuncLock 将通过函数 `f` 计算得到的结果设置为 `key` 的值,并在以下情况下返回 true: // 如果 `key` 不存在于缓存中。如果 `key` 已经存在,则不做任何操作并返回 false。 // // 当 `duration` 等于 0 时,它不会设置过期时间。 // 如果 `duration` 小于 0 或者给定的 `value` 是 nil,则会删除 `key`。 // // 注意,该函数与 `SetIfNotExistFunc` 函数的不同之处在于, // 为了保证并发安全性,函数 `f` 在写入互斥锁内执行。 X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (ok bool, err error) // Get 方法用于获取并返回给定`key`关联的值。 // 若该键不存在,或者其对应的值为nil,或者已过期,则返回nil。 // 如果你想检查`key`是否存在于缓存中,最好使用Contains函数。 X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error) // GetOrSet 函数用于检索并返回键 `key` 对应的值,如果 `key` 不存在于缓存中,则设置 `key`-`value` 键值对,并返回 `value`。该键值对在 `duration` 时间后过期。 // 如果 `duration` 等于 0,则表示永不过期。 // 如果 `duration` 小于 0 或提供的 `value` 为 nil,则会删除 `key`,但如果 `value` 是一个函数且函数结果为 nil,则不做任何操作。 X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (result *泛型类.Var, err error) // GetOrSetFunc 函数用于获取并返回 `key` 对应的值,如果 `key` 不存在于缓存中,则使用函数 `f` 的结果设置 `key` 并返回其结果。 // 这对键值对将在 `duration` 时间后过期。 // // 若 `duration` 等于 0,则表示永不过期。 // 若 `duration` 小于 0 或提供的 `value` 为 nil,则会删除 `key`,但如果 `value` 是一个函数且函数结果为 nil,则不做任何操作。 X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (result *泛型类.Var, err error) // GetOrSetFuncLock 从缓存中获取并返回`key`的值,如果`key`不存在,则使用函数`f`的结果设置`key`并返回其结果。键值对在`duration`后过期。 // // 如果`duration` == 0,则不会过期。 // 如果`duration` < 0 或给定的`value`为 nil,则删除`key`,但如果`value`是一个函数且函数结果为 nil,则不做任何操作。 // // 注意,它与函数`GetOrSetFunc`的不同之处在于,为了并发安全的目的,函数`f`在写入互斥锁内执行。 X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (result *泛型类.Var, 错误 error) // Contains 检查并返回 true 如果 `key` 存在于缓存中,否则返回 false。 X是否存在(上下文 context.Context, 名称 interface{}) (bool, error) // Size 返回缓存中的项目数量。 X取数量(上下文 context.Context) (数量 int, 错误 error) // Data 返回缓存中所有键值对的副本,类型为 map 类型。 // 注意,此函数可能会导致大量内存使用,如有必要请自行实现该函数。 X取所有键值Map副本(上下文 context.Context) (map值 map[interface{}]interface{}, 错误 error) // Keys 返回缓存中的所有键作为切片。 X取所有键(上下文 context.Context) (名称数组 []interface{}, 错误 error) // Values 返回缓存中的所有值作为一个切片。 X取所有值(上下文 context.Context) (值数组 []interface{}, 错误 error) // Update 更新`key`的值而不改变其过期时间,并返回旧值。 // 返回的布尔值`exist`,若`key`在缓存中不存在则为false。 // // 若给出的`value`为nil,则会删除`key`。 // 若`key`在缓存中不存在,则不做任何操作。 X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否存在 bool, 错误 error) // UpdateExpire 更新键 `key` 的过期时间,并返回旧的过期持续时间值。 // // 如果 `key` 不存在于缓存中,则返回 -1 并不做任何操作。 // 若 `duration` 小于 0,则会删除 `key`。 X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error) // GetExpire 从缓存中检索并返回`key`的过期时间。 // // 注意: // 如果`key`永不过期,则返回0。 // 如果`key`在缓存中不存在,则返回-1。 X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error) // Remove 从缓存中删除一个或多个键,并返回其对应的值。 // 如果提供了多个键,它将返回最后被删除项的值。 X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (值 *泛型类.Var, 错误 error) // Clear 清除缓存中的所有数据。 // 注意:该函数较为敏感,应谨慎使用。 X清空(上下文 context.Context) error // Close 在必要时关闭缓存。 X关闭(上下文 context.Context) error }
Adapter 是缓存功能的核心适配器实现。
注意:实现者自身应确保这些函数的并发安全性。
func NewAdapterRedis ¶
func NewAdapterRedis(redis *redis类.Redis) Adapter
NewAdapterRedis 创建并返回一个新的内存缓存对象。
type AdapterMemory ¶
type AdapterMemory struct {
// contains filtered or unexported fields
}
AdapterMemory 是一个使用内存实现的适配器。
func (*AdapterMemory) X删除并带返回值 ¶
func (c *AdapterMemory) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (*泛型类.Var, error)
Remove 从缓存中删除一个或多个键,并返回其对应的值。 如果提供了多个键,它将返回最后一个被删除项的值。
func (*AdapterMemory) X取值 ¶
func (c *AdapterMemory) X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error)
Get 方法通过给定的 `key` 获取并返回关联的值。 若该 `key` 对应的值不存在,或者其值为 nil,或已过期,则返回 nil。 如果你想检查 `key` 是否存在于缓存中,最好使用 Contains 函数。
func (*AdapterMemory) X取值或设置值 ¶
func (c *AdapterMemory) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (*泛型类.Var, error)
GetOrSet 获取并返回键`key`的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 键值对在`duration`时间后过期。
如果`duration` == 0,则不会过期。 如果`duration` < 0 或者给定的`value`为nil,则删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。
func (*AdapterMemory) X取值或设置值_函数 ¶
func (c *AdapterMemory) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (*泛型类.Var, error)
GetOrSetFunc 函数用于获取并返回 `key` 对应的值,如果 `key` 不存在于缓存中,则使用函数 `f` 的结果设置 `key` 并返回其结果。 这对键值在 `duration` 时间后将自动过期。
如果 `duration` 等于 0,则表示该键值对永不过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,则会删除 `key`,但如果 `value` 是一个函数且函数结果为 nil,则不做任何操作。
func (*AdapterMemory) X取值或设置值_并发安全函数 ¶
func (c *AdapterMemory) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (*泛型类.Var, error)
GetOrSetFuncLock 从缓存中获取并返回`key`的值,如果`key`不存在,则使用函数`f`的结果设置`key`并返回其结果。键值对在`duration`时间后过期。 如果`duration`为0,则它不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。 注意,该方法与函数`GetOrSetFunc`的不同之处在于,为了保证并发安全,函数`f`在写入互斥锁内执行。
func (*AdapterMemory) X取所有值 ¶
func (c *AdapterMemory) X取所有值(上下文 context.Context) ([]interface{}, error)
Values 返回缓存中的所有值作为一个切片。
func (*AdapterMemory) X取所有键 ¶
func (c *AdapterMemory) X取所有键(上下文 context.Context) ([]interface{}, error)
Keys 返回缓存中的所有键作为切片。
func (*AdapterMemory) X取所有键值Map副本 ¶
func (c *AdapterMemory) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
Data 返回缓存中所有键值对的副本,类型为 map。
func (*AdapterMemory) X取数量 ¶
func (c *AdapterMemory) X取数量(上下文 context.Context) (数量 int, 错误 error)
Size 返回缓存的大小。
func (*AdapterMemory) X取过期时间 ¶
GetExpire 从缓存中检索并返回`key`的过期时间。
注意: 如果`key`永不过期,则返回0。 如果`key`在缓存中不存在,则返回-1。
func (*AdapterMemory) X是否存在 ¶
func (c *AdapterMemory) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
Contains 检查并返回 true,如果 `key` 存在于缓存中;否则返回 false。
func (*AdapterMemory) X更新值 ¶
func (c *AdapterMemory) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否已存在 bool, 错误 error)
Update 更新`key`的值,但不改变其过期时间,并返回旧值。 返回的布尔值`exist`,如果`key`在缓存中不存在,则为false。
如果给定的`value`为nil,则删除`key`。 若`key`在缓存中不存在,则不做任何操作。
func (*AdapterMemory) X更新过期时间 ¶
func (c *AdapterMemory) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
UpdateExpire 更新键 `key` 的过期时间,并返回旧的过期持续时长值。
若 `key` 不存在于缓存中,则返回 -1 并不做任何操作。 若 `duration` 小于 0,则删除 `key`。
func (*AdapterMemory) X清空 ¶
func (c *AdapterMemory) X清空(上下文 context.Context) error
Clear 清除缓存中的所有数据。 注意:此函数较为敏感,应谨慎使用。
func (*AdapterMemory) X设置Map ¶
func (c *AdapterMemory) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, 时长 time.Duration) error
SetMap 批量设置缓存,通过 `data` 参数中的键值对进行设置,并在 `duration` 时间后过期。
如果 `duration` == 0,则表示永不过期。 如果 `duration` < 0 或者给定的 `value` 为 nil,则会删除 `data` 中的键。
func (*AdapterMemory) X设置值 ¶
func (c *AdapterMemory) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) error
Set 通过 `key`-`value` 对设置缓存,该对在 `duration` 后过期。
如果 `duration` == 0,则永不过期。 如果 `duration` < 0 或提供的 `value` 为 nil,则删除 `data` 的键。
func (*AdapterMemory) X设置值并跳过已存在 ¶
func (c *AdapterMemory) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (bool, error)
SetIfNotExist 若`key`不存在于缓存中,则设置带有`key`-`value`对的缓存,该对在`duration`后过期。 如果`key`在缓存中不存在,它将返回true,并成功将`value`设置到缓存中,否则返回false。
如果`duration` == 0,则不会设置过期时间。 如果`duration` < 0 或给定的`value`为nil,则删除`key`。
func (*AdapterMemory) X设置值并跳过已存在_函数 ¶
func (c *AdapterMemory) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (bool, error)
SetIfNotExistFunc 函数用于设置 `key` 为函数 `f` 的计算结果,并在 `key` 不存在于缓存中时返回 true, 否则如果 `key` 已存在,则不做任何操作并返回 false。
参数 `value` 可以是类型 `func() interface{}`,但如果其结果为 nil,则该函数不会执行任何操作。
如果 `duration` == 0,则不设置过期时间。 如果 `duration` < 0 或给定的 `value` 为 nil,则会删除 `key`。
func (*AdapterMemory) X设置值并跳过已存在_并发安全函数 ¶
func (c *AdapterMemory) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (bool, error)
SetIfNotExistFuncLock 将通过函数 `f` 计算的结果设置为 `key` 的值,并在以下情况下返回 true: 1. 如果 `key` 不存在于缓存中,则设置并返回 true。 2. 否则,如果 `key` 已经存在,则不做任何操作并返回 false。 若 `duration` 等于 0,则不设置过期时间。 若 `duration` 小于 0 或提供的 `value` 为 nil,则删除 `key`。 注意,此方法与函数 `SetIfNotExistFunc` 的不同之处在于, 函数 `f` 在写入互斥锁保护下执行,以确保并发安全。
type AdapterRedis ¶
type AdapterRedis struct {
// contains filtered or unexported fields
}
AdapterRedis 是使用 Redis 服务器实现的 gcache 适配器。
func (*AdapterRedis) X删除并带返回值 ¶
func (c *AdapterRedis) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (最后一个删除值 *泛型类.Var, 错误 error)
Remove 从缓存中删除一个或多个键,并返回其对应的值。 如果提供了多个键,它将返回被删除的最后一个项目的值。
func (*AdapterRedis) X取值 ¶
func (c *AdapterRedis) X取值(上下文 context.Context, 名称 interface{}) (*泛型类.Var, error)
Get 函数根据给定的 <key> 获取并返回其关联的值。 如果该键不存在,或者其对应的值为 nil,则返回 nil。
func (*AdapterRedis) X取值或设置值 ¶
func (c *AdapterRedis) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (结果 *泛型类.Var, 错误 error)
GetOrSet 获取并返回键`key`的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 键值对在`duration`时间后过期。
如果`duration` == 0,则不会过期。 如果`duration` < 0 或者给定的`value`为nil,则删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。
func (*AdapterRedis) X取值或设置值_函数 ¶
func (c *AdapterRedis) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (结果 *泛型类.Var, 错误 error)
GetOrSetFunc 函数用于获取并返回 `key` 对应的值,如果 `key` 不存在于缓存中,则使用函数 `f` 的结果设置 `key` 并返回其结果。 这对键值在 `duration` 时间后将自动过期。
如果 `duration` 等于 0,则表示该键值对永不过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,则会删除 `key`,但如果 `value` 是一个函数且函数结果为 nil,则不做任何操作。
func (*AdapterRedis) X取值或设置值_并发安全函数 ¶
func (c *AdapterRedis) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (结果 *泛型类.Var, 错误 error)
GetOrSetFuncLock 从缓存中获取并返回`key`的值,如果`key`不存在,则使用函数`f`的结果设置`key`并返回其结果。键值对在`duration`时间后过期。 如果`duration`为0,则它不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但如果`value`是一个函数且函数结果为nil,则不做任何操作。 注意,该方法与函数`GetOrSetFunc`的不同之处在于,为了保证并发安全,函数`f`在写入互斥锁内执行。
func (*AdapterRedis) X取所有值 ¶
func (c *AdapterRedis) X取所有值(上下文 context.Context) ([]interface{}, error)
Values 返回缓存中的所有值作为一个切片。
func (*AdapterRedis) X取所有键 ¶
func (c *AdapterRedis) X取所有键(上下文 context.Context) ([]interface{}, error)
Keys 返回缓存中的所有键作为切片。
func (*AdapterRedis) X取所有键值Map副本 ¶
func (c *AdapterRedis) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
Data 返回缓存中所有键值对的副本,类型为 map。注意,此函数可能会导致大量内存使用, 因此请按需实现该函数。
func (*AdapterRedis) X取数量 ¶
func (c *AdapterRedis) X取数量(上下文 context.Context) (数量 int, 错误 error)
Size 返回缓存中的项目数量。
func (*AdapterRedis) X取过期时间 ¶
GetExpire 从缓存中检索并返回`key`的过期时间。
注意: 如果`key`永不过期,则返回0。 如果`key`在缓存中不存在,则返回-1。
func (*AdapterRedis) X是否存在 ¶
func (c *AdapterRedis) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
Contains 检查并返回 true,如果 `key` 存在于缓存中;否则返回 false。
func (*AdapterRedis) X更新值 ¶
func (c *AdapterRedis) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *泛型类.Var, 是否存在 bool, 错误 error)
Update 更新`key`的值,但不改变其过期时间,并返回旧值。 返回的布尔值`exist`,如果`key`在缓存中不存在,则为false。
如果给定的`value`为nil,则删除`key`。 若`key`在缓存中不存在,则不做任何操作。
func (*AdapterRedis) X更新过期时间 ¶
func (c *AdapterRedis) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
UpdateExpire 更新键 `key` 的过期时间,并返回旧的过期持续时长值。
若 `key` 不存在于缓存中,则返回 -1 并不做任何操作。 若 `duration` 小于 0,则删除 `key`。
func (*AdapterRedis) X清空 ¶
func (c *AdapterRedis) X清空(上下文 context.Context) (错误 error)
Clear 清除缓存中的所有数据。 注意:此函数较为敏感,应谨慎使用。 它在 Redis 服务器中使用了 `FLUSHDB` 命令,该命令可能在服务器中被禁用。
func (*AdapterRedis) X设置Map ¶
func (c *AdapterRedis) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, 时长 time.Duration) error
SetMap 批量设置缓存,通过 `data` 参数中的键值对进行设置,并在 `duration` 时间后过期。
如果 `duration` == 0,则表示永不过期。 如果 `duration` < 0 或者给定的 `value` 为 nil,则会删除 `data` 中的键。
func (*AdapterRedis) X设置值 ¶
func (c *AdapterRedis) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (错误 error)
Set 通过 `key`-`value` 对设置缓存,该对在 `duration` 后过期。
如果 `duration` == 0,则永不过期。 如果 `duration` < 0 或提供的 `value` 为 nil,则删除 `data` 的键。
func (*AdapterRedis) X设置值并跳过已存在 ¶
func (c *AdapterRedis) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (bool, error)
SetIfNotExist 若`key`不存在于缓存中,则设置带有`key`-`value`对的缓存,该对在`duration`后过期。 如果`key`在缓存中不存在,它将返回true,并成功将`value`设置到缓存中,否则返回false。
如果`duration` == 0,则不会设置过期时间。 如果`duration` < 0 或给定的`value`为nil,则删除`key`。
func (*AdapterRedis) X设置值并跳过已存在_函数 ¶
func (c *AdapterRedis) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (成功 bool, 错误 error)
SetIfNotExistFunc 函数用于设置 `key` 为函数 `f` 的计算结果,并在 `key` 不存在于缓存中时返回 true, 否则如果 `key` 已存在,则不做任何操作并返回 false。
参数 `value` 可以是类型 `func() interface{}`,但如果其结果为 nil,则该函数不会执行任何操作。
如果 `duration` == 0,则不设置过期时间。 如果 `duration` < 0 或给定的 `value` 为 nil,则会删除 `key`。
func (*AdapterRedis) X设置值并跳过已存在_并发安全函数 ¶
func (c *AdapterRedis) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) (成功 bool, 错误 error)
SetIfNotExistFuncLock 将通过函数 `f` 计算的结果设置为 `key` 的值,并在以下情况下返回 true: 1. 如果 `key` 不存在于缓存中,则设置并返回 true。 2. 否则,如果 `key` 已经存在,则不做任何操作并返回 false。 若 `duration` 等于 0,则不设置过期时间。 若 `duration` 小于 0 或提供的 `value` 为 nil,则删除 `key`。 注意,此方法与函数 `SetIfNotExistFunc` 的不同之处在于, 函数 `f` 在写入互斥锁保护下执行,以确保并发安全。
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
Cache struct.
func (*Cache) X取值或设置值PANI ¶
func (c *Cache) X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) *泛型类.Var
MustGetOrSet 行为类似于 GetOrSet,但是当发生任何错误时,它会触发panic(异常)。
func (*Cache) X取值或设置值_函数PANI ¶
func (c *Cache) X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) *泛型类.Var
MustGetOrSetFunc 行为类似于 GetOrSetFunc,但当发生任何错误时它会触发panic。
func (*Cache) X取值或设置值_并发安全函数PANI ¶
func (c *Cache) X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 Func, 时长 time.Duration) *泛型类.Var
MustGetOrSetFuncLock 类似于 GetOrSetFuncLock,但如果发生任何错误,它会触发 panic。
func (*Cache) X取所有键值Map副本PANI ¶
MustData 的行为类似于 Data,但是当发生任何错误时它会触发panic(异常)。
func (*Cache) X取所有键文本PANI ¶
MustKeyStrings 行为类似 KeyStrings,但当发生任何错误时,它会引发 panic。
func (*Cache) X取过期时间PANI ¶
MustGetExpire 的行为类似于 GetExpire,但是当发生任何错误时,它会触发panic。