Documentation ¶
Overview ¶
包 gcache 为进程提供各种缓存管理。
默认情况下,它提供了一个并发安全的内存缓存适配器给进程。 md5:83aa9516287cdc99
Index ¶
- Constants
- func X删除(上下文 context.Context, 名称s []interface{}) error
- func X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (可选值 *gvar.X结构_泛型类, err error)
- func X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)
- func X取值PANI(上下文 context.Context, 名称 interface{}) *gvar.X结构_泛型类
- func X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (*gvar.X结构_泛型类, error)
- func X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) *gvar.X结构_泛型类
- func X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (*gvar.X结构_泛型类, error)
- func X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) *gvar.X结构_泛型类
- func X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (*gvar.X结构_泛型类, error)
- func X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) *gvar.X结构_泛型类
- func X取成员数(上下文 context.Context) (int, error)
- func X取成员数PANI(上下文 context.Context) int
- 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, 名称 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{}) (旧值 *gvar.X结构_泛型类, exist bool, err 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{}, 回调函数 X函数类型_Func, ...) (bool, error)
- func X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (bool, error)
- type Adapter
- type X函数类型_Func
- type X结构_AdapterMemory
- func (c *X结构_AdapterMemory) X关闭(ctx context.Context) error
- func (c *X结构_AdapterMemory) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterMemory) X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterMemory) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterMemory) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterMemory) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterMemory) X取成员数(上下文 context.Context) (数量 int, 错误 error)
- func (c *X结构_AdapterMemory) X取所有值(上下文 context.Context) ([]interface{}, error)
- func (c *X结构_AdapterMemory) X取所有键(上下文 context.Context) ([]interface{}, error)
- func (c *X结构_AdapterMemory) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
- func (c *X结构_AdapterMemory) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)
- func (c *X结构_AdapterMemory) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
- func (c *X结构_AdapterMemory) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *gvar.X结构_泛型类, exist bool, err error)
- func (c *X结构_AdapterMemory) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
- func (c *X结构_AdapterMemory) X清空(ctx context.Context) error
- func (c *X结构_AdapterMemory) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, ...) error
- func (c *X结构_AdapterMemory) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) error
- func (c *X结构_AdapterMemory) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (bool, error)
- func (c *X结构_AdapterMemory) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (bool, error)
- func (c *X结构_AdapterMemory) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (bool, error)
- type X结构_AdapterRedis
- func (c *X结构_AdapterRedis) X关闭(上下文 context.Context) error
- func (c *X结构_AdapterRedis) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (最后一个删除值 *gvar.X结构_泛型类, err error)
- func (c *X结构_AdapterRedis) X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)
- func (c *X结构_AdapterRedis) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (结果 *gvar.X结构_泛型类, err error)
- func (c *X结构_AdapterRedis) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (结果 *gvar.X结构_泛型类, err error)
- func (c *X结构_AdapterRedis) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (结果 *gvar.X结构_泛型类, err error)
- func (c *X结构_AdapterRedis) X取成员数(上下文 context.Context) (数量 int, 错误 error)
- func (c *X结构_AdapterRedis) X取所有值(上下文 context.Context) ([]interface{}, error)
- func (c *X结构_AdapterRedis) X取所有键(上下文 context.Context) ([]interface{}, error)
- func (c *X结构_AdapterRedis) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
- func (c *X结构_AdapterRedis) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)
- func (c *X结构_AdapterRedis) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
- func (c *X结构_AdapterRedis) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *gvar.X结构_泛型类, exist bool, err error)
- func (c *X结构_AdapterRedis) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
- func (c *X结构_AdapterRedis) X清空(上下文 context.Context) (错误 error)
- func (c *X结构_AdapterRedis) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, ...) error
- func (c *X结构_AdapterRedis) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (err error)
- func (c *X结构_AdapterRedis) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) (bool, error)
- func (c *X结构_AdapterRedis) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (成功 bool, 错误 error)
- func (c *X结构_AdapterRedis) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) (成功 bool, 错误 error)
- type X结构_缓存
- func (c *X结构_缓存) X删除(上下文 context.Context, 名称s []interface{}) error
- func (c *X结构_缓存) X取值PANI(上下文 context.Context, 名称 interface{}) *gvar.X结构_泛型类
- func (c *X结构_缓存) X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, ...) *gvar.X结构_泛型类
- func (c *X结构_缓存) X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) *gvar.X结构_泛型类
- func (c *X结构_缓存) X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, ...) *gvar.X结构_泛型类
- func (c *X结构_缓存) X取成员数PANI(上下文 context.Context) int
- func (c *X结构_缓存) X取所有值PANI(上下文 context.Context) []interface{}
- func (c *X结构_缓存) X取所有键PANI(上下文 context.Context) []interface{}
- func (c *X结构_缓存) X取所有键值Map副本PANI(上下文 context.Context) map[interface{}]interface{}
- func (c *X结构_缓存) X取所有键文本(上下文 context.Context) ([]string, error)
- func (c *X结构_缓存) X取所有键文本PANI(上下文 context.Context) []string
- func (c *X结构_缓存) X取过期时间PANI(上下文 context.Context, 名称 interface{}) time.Duration
- func (c *X结构_缓存) X取适配器() Adapter
- func (c *X结构_缓存) X是否存在PANI(上下文 context.Context, 名称 interface{}) bool
- func (c *X结构_缓存) X设置适配器(适配器 Adapter)
Constants ¶
const (
X常量_持续时间_无期限 = time.Duration(0) // 永不过期的持续时间。 md5:2536f018477cbf65
)
Variables ¶
This section is empty.
Functions ¶
func X取值 ¶
X取值 从缓存中检索并返回给定 `key` 的关联值。如果不存在、值为nil或已过期,它将返回nil。如果你想检查`key`是否存在于缓存中,建议使用Contains函数。 md5:f78c30f8338ce106
func X取值或设置值 ¶
func X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值 获取并返回`key`对应的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 这对键值将在指定的`duration`后过期。
如果`duration`为0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且函数结果为nil,它则不做任何操作。 md5:b8646fcb99c81de9
func X取值或设置值PANI ¶
func X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值PANI 的行为类似于 GetOrSet,但是如果发生任何错误,它会直接 panic。 md5:684c6b06451a2f6f
func X取值或设置值_函数 ¶
func X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值_函数 获取并返回`key`的值,如果缓存中不存在`key`,则使用函数`f`的结果设置`key`并返回该结果。键值对在`duration`时间后过期。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且其结果为nil,则不执行任何操作。 md5:822486c86baa87d1
func X取值或设置值_函数PANI ¶
func X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值_函数PANI 行为类似于 GetOrSetFunc,但如果发生任何错误,则会引发 panic。 md5:07fd1ef2dbfce0b4
func X取值或设置值_并发安全函数 ¶
func X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值_并发安全函数 获取并返回键`key`的值,或者如果`key`在缓存中不存在,则使用函数`f`的结果设置`key`,并返回其结果。键值对在`duration`后过期。
如果`duration`为0,它不会过期。 如果`duration`小于0或给定的`value`为nil,它会删除`key`;但如果`value`是一个函数并且函数结果为nil,它将不执行任何操作。
注意,它与`GetOrSetFunc`函数不同,函数`f`是在写入互斥锁保护下执行的,以确保并发安全。 md5:3e49c54e5e0c2857
func X取值或设置值_并发安全函数PANI ¶
func X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值_并发安全函数PANI 行为与 GetOrSetFuncLock 类似,但如果发生任何错误,它将引发恐慌。 md5:7f84f54a71da5305
func X取所有键值Map副本 ¶
X取所有键值Map副本 返回缓存中所有键值对的副本,以映射类型形式呈现。 注意:此函数可能会占用大量内存,请根据需要决定是否实现该功能。 md5:c44cdbd9b10ab98f
func X取所有键值Map副本PANI ¶
X取所有键值Map副本PANI的行为就像Data一样,但如果发生任何错误,它会引发恐慌。 md5:b53b751e2003cd20
func X取所有键文本PANI ¶
X取所有键文本PANI 的行为类似于 KeyStrings,但如果发生任何错误,它会直接 panic。 md5:3efe93008da2eb0f
func X取过期时间 ¶
X取过期时间 从缓存中检索并返回 `key` 的过期时间。
注意, 如果 `key` 没有过期,它将返回 0。 如果 `key` 不在缓存中,它将返回 -1。 md5:d80ce12df8668b97
func X取过期时间PANI ¶
X取过期时间PANI 的行为类似于 GetExpire,但如果发生任何错误,它会直接 panic。 md5:c97fa5941bbc47a3
func X更新值 ¶
func X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *gvar.X结构_泛型类, exist bool, err error)
X更新值 更新`key`的值,不改变其过期时间,并返回旧的值。 如果`key`在缓存中不存在,返回的值`exist`为false。
如果给定的`value`为nil,它会删除`key`。 如果`key`不在缓存中,它不会做任何操作。 md5:6d92816db5b1d3bd
func X更新过期时间 ¶
X更新过期时间 更新键`key`的过期时间,并返回旧的过期持续时间值。
如果`key`在缓存中不存在,它将返回-1并什么都不做。如果`duration`小于0,它会删除`key`。 md5:b974907dd46b44be
func X设置Map ¶
X设置Map 批量设置缓存,使用 `data` 映射(键值对)的方式,其在 `duration` 后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或给定的 `value` 为 `nil`,则会删除 `data` 中的键。 md5:a09a11cd5d9d21e6
func X设置值 ¶
X设置值 使用键值对 `key`-`value` 设置缓存,该缓存在 `duration` 时间后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,它将删除 `data` 中的键。 md5:7faea7b643bffd7c
func X设置值并跳过已存在 ¶
X设置值并跳过已存在 如果缓存中不存在`key`,则设置过期时间为`duration`的`key`-`value`对。如果成功将`value`设置到缓存中,它会返回`true`,表示`key`在缓存中不存在;否则返回`false`。
如果`duration`为0,缓存不会过期。 如果`duration`小于0或给定的`value`为`nil`,它会删除`key`。 md5:38aa90beb53ed441
func X设置值并跳过已存在_函数 ¶
func X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (bool, error)
X设置值并跳过已存在_函数 如果`key`不存在于缓存中,则使用函数`f`的结果设置`key`并返回true。 否则,如果`key`已存在,则不做任何操作并返回false。
参数`value`可以是类型为`func() interface{}`的函数, 但如果其结果为nil,则不会执行任何操作。
如果`duration`等于0,则不设置过期时间。 如果`duration`小于0或给定的`value`为nil,则删除该`key`。 md5:8300c80b9bab735d
func X设置值并跳过已存在_并发安全函数 ¶
func X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (bool, error)
X设置值并跳过已存在_并发安全函数 当`key`在缓存中不存在时,使用函数`f`的结果设置`key`,并返回true。 如果`key`已经存在,则不执行任何操作并返回false。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,将删除`key`。
注意,它与函数`SetIfNotExistFunc`的区别在于,函数`f`在写入互斥锁内部执行,以保证并发安全性。 md5:629e13ace9eaf720
Types ¶
type Adapter ¶
type Adapter interface { // X设置值 使用 `key`-`value` 对设置缓存,该缓存在 `duration` 时间后过期。 // // 如果 `duration` == 0,则不设置过期时间。 // 如果 `duration` < 0 或给定的 `value` 为 nil,则删除 `data` 的键。 // md5:3f5918d3cc5c36fd X设置值(ctx context.Context, key interface{}, value interface{}, duration time.Duration) error // X设置Map 批量设置缓存,使用 `data` 映射中的键值对,这些缓存在 `duration` 时间后过期。 // // 如果 `duration` == 0,则不会过期。 // 如果 `duration` < 0 或者给定的 `value` 为 nil,将删除 `data` 中的键。 // md5:029757e42001dd48 X设置Map(ctx context.Context, data map[interface{}]interface{}, duration time.Duration) error // X设置值并跳过已存在 如果缓存中不存在`key`,则设置过期时间为`duration`的`key`-`value`对。如果成功将`value`设置到缓存中,它会返回`true`,表示`key`在缓存中不存在;否则返回`false`。 // // 如果`duration`为0,缓存不会过期。 // 如果`duration`小于0或给定的`value`为`nil`,它会删除`key`。 // md5:a442e240e2ddb849 X设置值并跳过已存在(ctx context.Context, key interface{}, value interface{}, duration time.Duration) (ok bool, err error) // X设置值并跳过已存在_函数 如果缓存中不存在`key`,则使用函数`f`的结果设置`key`,并返回true。如果`key`已存在,则不做任何操作,返回false。 // // 参数`value`可以是`func() interface{}`类型,但如果其结果为nil,则不执行任何操作。 // // 如果`duration`为0,表示永不过期。如果`duration`小于0或给定的`value`为nil,则删除`key`。 // md5:33f0e2bb534c4ac4 X设置值并跳过已存在_函数(ctx context.Context, key interface{}, f X函数类型_Func, duration time.Duration) (ok bool, err error) // X设置值并跳过已存在_并发安全函数 如果`key`在缓存中不存在,则使用函数`f`的结果设置`key`并返回true。 // 如果`key`已存在,则不做任何操作并返回false。 // // 如果`duration`为0,则不设置过期时间。 // 如果`duration`小于0或给定的`value`为nil,则删除`key`。 // // 注意,它与函数`SetIfNotExistFunc`的不同之处在于,为了并发安全,函数`f`在写入互斥锁内部执行。 // md5:906879fb08827346 X设置值并跳过已存在_并发安全函数(ctx context.Context, key interface{}, f X函数类型_Func, duration time.Duration) (ok bool, err error) // X取值 获取并返回给定`key`关联的值。 // 如果键不存在、其值为nil或已过期,它将返回nil。 // 如果你想检查`key`是否在缓存中存在,最好使用Contains函数。 // md5:a04abebd42f9db26 X取值(ctx context.Context, key interface{}) (*gvar.X结构_泛型类, error) // X取值或设置值 从缓存中获取并返回`key`的值,如果`key`不存在,则设置`key-value`对,并返回`value`。缓存中的键值对在`duration`后过期。 // 如果`duration`为0,则不会过期。 // 如果`duration`小于0或给定的`value`为nil,它会删除`key`;但如果`value`是一个函数且函数结果为nil,则不做任何操作。 // md5:a9525aacd8a5324e X取值或设置值(ctx context.Context, key interface{}, value interface{}, duration time.Duration) (result *gvar.X结构_泛型类, err error) // X取值或设置值_函数 从缓存中获取并返回键`key`的值,如果键不存在,则使用函数`f`的结果设置键并返回该结果。键值对在`duration`后过期。 // // 如果`duration`为0,表示永不过期。 // 如果`duration`小于0或给定的`value`为nil,它会删除键`key`。但如果`value`是一个函数并且函数结果为nil,它不会做任何操作。 // md5:57a987bd75623802 X取值或设置值_函数(ctx context.Context, key interface{}, f X函数类型_Func, duration time.Duration) (result *gvar.X结构_泛型类, err error) // X取值或设置值_并发安全函数 获取并返回`key`的值,如果`key`在缓存中不存在,则使用函数`f`的结果设置`key`并返回该结果。 // 键值对将在`duration`时间后过期。 // // 如果`duration`为0,则不设置过期时间。 // 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且函数结果为nil时,它不做任何操作。 // // 需要注意的是,此函数与`GetOrSetFunc`的区别在于,函数`f`是在写入互斥锁内部执行的,以确保并发安全。 // md5:b0a08f256bf6fcfc X取值或设置值_并发安全函数(ctx context.Context, key interface{}, f X函数类型_Func, duration time.Duration) (result *gvar.X结构_泛型类, err error) // X是否存在 检查并返回如果 `key` 在缓存中存在则为真,否则为假。 md5:4ff234995709b9ab X是否存在(ctx context.Context, key interface{}) (bool, error) // X取成员数 返回缓存中的项目数量。 md5:2122f80de9340261 X取成员数(ctx context.Context) (size int, err error) // X取所有键值Map副本返回缓存中所有键值对的副本,以map类型。 // 注意,此函数可能会导致大量内存使用。如果需要,您可以实现这个函数。 // md5:96cf9c57d77ba2dd X取所有键值Map副本(ctx context.Context) (data map[interface{}]interface{}, err error) // X取所有键 返回缓存中所有键的切片。 md5:7ebd9dba01282dc2 X取所有键(ctx context.Context) (keys []interface{}, err error) // X取所有值 返回缓存中所有的值作为切片。 md5:dc00b32eb8913e9b X取所有值(ctx context.Context) (values []interface{}, err error) // X更新值 更新`key`的值,不改变其过期时间,并返回旧的值。 // 如果`key`在缓存中不存在,返回的值`exist`为false。 // // 如果给定的`value`为nil,它会删除`key`。 // 如果`key`不在缓存中,它不会做任何操作。 // md5:28635aef7c0fc7a9 X更新值(ctx context.Context, key interface{}, value interface{}) (oldValue *gvar.X结构_泛型类, exist bool, err error) // X更新过期时间 更新键`key`的过期时间,并返回旧的过期持续时间值。 // // 如果`key`在缓存中不存在,它将返回-1并什么都不做。如果`duration`小于0,它会删除`key`。 // md5:f1bb94e5134bebed X更新过期时间(ctx context.Context, key interface{}, duration time.Duration) (oldDuration time.Duration, err error) // X取过期时间 获取并返回缓存中 `key` 的过期时间。 // // 注意: // 如果 `key` 没有设置过期时间,它将返回 0。 // 如果 `key` 在缓存中不存在,它将返回 -1。 // md5:6a059254c0534a31 X取过期时间(ctx context.Context, key interface{}) (time.Duration, error) // X删除并带返回值 从缓存中删除一个或多个键,并返回其值。 // 如果提供了多个键,它将返回最后一个被删除项的值。 // md5:6e5f157befbc08c2 X删除并带返回值(ctx context.Context, keys ...interface{}) (lastValue *gvar.X结构_泛型类, err error) // X清空 清空缓存中的所有数据。 // 注意,此函数涉及敏感操作,应谨慎使用。 // md5:8f66f62d0fce831a X清空(ctx context.Context) error // X关闭如果有必要,关闭缓存。 md5:f9a73a30e4b4b396 X关闭(ctx context.Context) error }
Adapter是缓存功能的核心适配器。
注意,实现者本身应确保这些函数的并发安全性。 md5:cd91041442c2fdbf
func NewAdapterRedis ¶
NewAdapterRedis 创建并返回一个新的内存缓存对象。 md5:ac9ad598fcd2adbb
type X函数类型_Func ¶
X函数类型_Func是缓存函数,它计算并返回值。 md5:a8aeba091cce1386
type X结构_AdapterMemory ¶
type X结构_AdapterMemory struct {
// contains filtered or unexported fields
}
X结构_AdapterMemory是一个适配器,它实现了使用内存。 md5:1058c2331fc6bbaa
func (*X结构_AdapterMemory) X关闭 ¶
func (c *X结构_AdapterMemory) X关闭(ctx context.Context) error
X关闭 关闭缓存。 md5:c1a9d7a347be93a8
func (*X结构_AdapterMemory) X删除并带返回值 ¶
func (c *X结构_AdapterMemory) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (*gvar.X结构_泛型类, error)
X删除并带返回值 从缓存中删除一个或多个键,并返回其值。 如果给出了多个键,它将返回最后删除项的值。 md5:d3b1c8af168b0ebf
func (*X结构_AdapterMemory) X取值 ¶
X取值 从缓存中检索并返回给定 `key` 的关联值。如果不存在、值为nil或已过期,它将返回nil。如果你想检查`key`是否存在于缓存中,建议使用Contains函数。 md5:f78c30f8338ce106
func (*X结构_AdapterMemory) X取值或设置值 ¶
func (c *X结构_AdapterMemory) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值 获取并返回`key`对应的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 这对键值将在指定的`duration`后过期。
如果`duration`为0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且函数结果为nil,它则不做任何操作。 md5:b8646fcb99c81de9
func (*X结构_AdapterMemory) X取值或设置值_函数 ¶
func (c *X结构_AdapterMemory) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值_函数 获取并返回`key`的值,如果缓存中不存在`key`,则使用函数`f`的结果设置`key`并返回该结果。键值对在`duration`时间后过期。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且其结果为nil,则不执行任何操作。 md5:822486c86baa87d1
func (*X结构_AdapterMemory) X取值或设置值_并发安全函数 ¶
func (c *X结构_AdapterMemory) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (*gvar.X结构_泛型类, error)
X取值或设置值_并发安全函数 获取并返回键`key`的值,或者如果`key`在缓存中不存在,则使用函数`f`的结果设置`key`,并返回其结果。键值对在`duration`后过期。
如果`duration`为0,它不会过期。 如果`duration`小于0或给定的`value`为nil,它会删除`key`;但如果`value`是一个函数并且函数结果为nil,它将不执行任何操作。
注意,它与`GetOrSetFunc`函数不同,函数`f`是在写入互斥锁保护下执行的,以确保并发安全。 md5:3e49c54e5e0c2857
func (*X结构_AdapterMemory) X取成员数 ¶
func (c *X结构_AdapterMemory) X取成员数(上下文 context.Context) (数量 int, 错误 error)
X取成员数 返回缓存的大小。 md5:c939a4ed87cd79ce
func (*X结构_AdapterMemory) X取所有值 ¶
func (c *X结构_AdapterMemory) X取所有值(上下文 context.Context) ([]interface{}, error)
X取所有值 返回缓存中所有的值作为切片。 md5:dc00b32eb8913e9b
func (*X结构_AdapterMemory) X取所有键 ¶
func (c *X结构_AdapterMemory) X取所有键(上下文 context.Context) ([]interface{}, error)
X取所有键 返回缓存中所有键的切片。 md5:7ebd9dba01282dc2
func (*X结构_AdapterMemory) X取所有键值Map副本 ¶
func (c *X结构_AdapterMemory) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
X取所有键值Map副本 返回一个缓存中所有键值对的副本,以映射类型表示。 md5:d88afdf7cfc66604
func (*X结构_AdapterMemory) X取过期时间 ¶
X取过期时间 从缓存中检索并返回 `key` 的过期时间。
注意, 如果 `key` 没有过期,它将返回 0。 如果 `key` 不在缓存中,它将返回 -1。 md5:d80ce12df8668b97
func (*X结构_AdapterMemory) X是否存在 ¶
func (c *X结构_AdapterMemory) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
X是否存在 检查并返回如果 `key` 在缓存中存在则为真,否则为假。 md5:4ff234995709b9ab
func (*X结构_AdapterMemory) X更新值 ¶
func (c *X结构_AdapterMemory) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *gvar.X结构_泛型类, exist bool, err error)
X更新值 更新`key`的值,不改变其过期时间,并返回旧的值。 如果`key`在缓存中不存在,返回的值`exist`为false。
如果给定的`value`为nil,它会删除`key`。 如果`key`不在缓存中,它不会做任何操作。 md5:6d92816db5b1d3bd
func (*X结构_AdapterMemory) X更新过期时间 ¶
func (c *X结构_AdapterMemory) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
X更新过期时间 更新键`key`的过期时间,并返回旧的过期持续时间值。
如果`key`在缓存中不存在,它将返回-1并什么都不做。如果`duration`小于0,它会删除`key`。 md5:b974907dd46b44be
func (*X结构_AdapterMemory) X清空 ¶
func (c *X结构_AdapterMemory) X清空(ctx context.Context) error
X清空 清空缓存中的所有数据。 注意,此函数涉及敏感操作,应谨慎使用。 md5:9212cab88870d3df
func (*X结构_AdapterMemory) X设置Map ¶
func (c *X结构_AdapterMemory) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, 时长 time.Duration) error
X设置Map 批量设置缓存,使用 `data` 映射(键值对)的方式,其在 `duration` 后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或给定的 `value` 为 `nil`,则会删除 `data` 中的键。 md5:a09a11cd5d9d21e6
func (*X结构_AdapterMemory) X设置值 ¶
func (c *X结构_AdapterMemory) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) error
X设置值 使用键值对 `key`-`value` 设置缓存,该缓存在 `duration` 时间后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,它将删除 `data` 中的键。 md5:7faea7b643bffd7c
func (*X结构_AdapterMemory) X设置值并跳过已存在 ¶
func (c *X结构_AdapterMemory) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (bool, error)
X设置值并跳过已存在 如果缓存中不存在`key`,则设置过期时间为`duration`的`key`-`value`对。如果成功将`value`设置到缓存中,它会返回`true`,表示`key`在缓存中不存在;否则返回`false`。
如果`duration`为0,缓存不会过期。 如果`duration`小于0或给定的`value`为`nil`,它会删除`key`。 md5:38aa90beb53ed441
func (*X结构_AdapterMemory) X设置值并跳过已存在_函数 ¶
func (c *X结构_AdapterMemory) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (bool, error)
X设置值并跳过已存在_函数 如果`key`不存在于缓存中,则使用函数`f`的结果设置`key`并返回true。 否则,如果`key`已存在,则不做任何操作并返回false。
参数`value`可以是类型为`func() interface{}`的函数, 但如果其结果为nil,则不会执行任何操作。
如果`duration`等于0,则不设置过期时间。 如果`duration`小于0或给定的`value`为nil,则删除该`key`。 md5:8300c80b9bab735d
func (*X结构_AdapterMemory) X设置值并跳过已存在_并发安全函数 ¶
func (c *X结构_AdapterMemory) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (bool, error)
X设置值并跳过已存在_并发安全函数 当`key`在缓存中不存在时,使用函数`f`的结果设置`key`,并返回true。 如果`key`已经存在,则不执行任何操作并返回false。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,将删除`key`。
注意,它与函数`SetIfNotExistFunc`的区别在于,函数`f`在写入互斥锁内部执行,以保证并发安全性。 md5:629e13ace9eaf720
type X结构_AdapterRedis ¶
type X结构_AdapterRedis struct {
// contains filtered or unexported fields
}
X结构_AdapterRedis 是使用 Redis 服务器实现的 gcache 适配器。 md5:7ac226ec6d59930e
func (*X结构_AdapterRedis) X关闭 ¶
func (c *X结构_AdapterRedis) X关闭(上下文 context.Context) error
X关闭 关闭缓存。 md5:c1a9d7a347be93a8
func (*X结构_AdapterRedis) X删除并带返回值 ¶
func (c *X结构_AdapterRedis) X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (最后一个删除值 *gvar.X结构_泛型类, err error)
X删除并带返回值 从缓存中删除一个或多个键,并返回其值。 如果给出了多个键,它将返回最后删除项的值。 md5:b3f23906b769df08
func (*X结构_AdapterRedis) X取值 ¶
X取值 通过给定的 <key> 获取并返回关联的值。如果不存在或其值为 nil,则返回 nil。 md5:ecb61eca16fb4324
func (*X结构_AdapterRedis) X取值或设置值 ¶
func (c *X结构_AdapterRedis) X取值或设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (结果 *gvar.X结构_泛型类, err error)
X取值或设置值 获取并返回`key`对应的值,如果`key`在缓存中不存在,则设置`key`-`value`对并返回`value`。 这对键值将在指定的`duration`后过期。
如果`duration`为0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且函数结果为nil,它则不做任何操作。 md5:b8646fcb99c81de9
func (*X结构_AdapterRedis) X取值或设置值_函数 ¶
func (c *X结构_AdapterRedis) X取值或设置值_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (结果 *gvar.X结构_泛型类, err error)
X取值或设置值_函数 获取并返回`key`的值,如果缓存中不存在`key`,则使用函数`f`的结果设置`key`并返回该结果。键值对在`duration`时间后过期。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,它将删除`key`,但若`value`是一个函数且其结果为nil,则不执行任何操作。 md5:822486c86baa87d1
func (*X结构_AdapterRedis) X取值或设置值_并发安全函数 ¶
func (c *X结构_AdapterRedis) X取值或设置值_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (结果 *gvar.X结构_泛型类, err error)
X取值或设置值_并发安全函数 获取并返回键`key`的值,或者如果`key`在缓存中不存在,则使用函数`f`的结果设置`key`,并返回其结果。键值对在`duration`后过期。
如果`duration`为0,它不会过期。 如果`duration`小于0或给定的`value`为nil,它会删除`key`;但如果`value`是一个函数并且函数结果为nil,它将不执行任何操作。
注意,它与`GetOrSetFunc`函数不同,函数`f`是在写入互斥锁保护下执行的,以确保并发安全。 md5:3e49c54e5e0c2857
func (*X结构_AdapterRedis) X取成员数 ¶
func (c *X结构_AdapterRedis) X取成员数(上下文 context.Context) (数量 int, 错误 error)
X取成员数 返回缓存中的项目数量。 md5:2122f80de9340261
func (*X结构_AdapterRedis) X取所有值 ¶
func (c *X结构_AdapterRedis) X取所有值(上下文 context.Context) ([]interface{}, error)
X取所有值 返回缓存中所有的值作为切片。 md5:dc00b32eb8913e9b
func (*X结构_AdapterRedis) X取所有键 ¶
func (c *X结构_AdapterRedis) X取所有键(上下文 context.Context) ([]interface{}, error)
X取所有键 返回缓存中所有键的切片。 md5:7ebd9dba01282dc2
func (*X结构_AdapterRedis) X取所有键值Map副本 ¶
func (c *X结构_AdapterRedis) X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)
X取所有键值Map副本 返回缓存中所有键值对的副本,以映射类型形式呈现。 注意:此函数可能会占用大量内存,请根据需要决定是否实现该功能。 md5:c44cdbd9b10ab98f
func (*X结构_AdapterRedis) X取过期时间 ¶
X取过期时间 从缓存中检索并返回 `key` 的过期时间。
注意, 如果 `key` 没有过期,它将返回 0。 如果 `key` 不在缓存中,它将返回 -1。 md5:d80ce12df8668b97
func (*X结构_AdapterRedis) X是否存在 ¶
func (c *X结构_AdapterRedis) X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)
X是否存在 检查并返回如果 `key` 在缓存中存在则为真,否则为假。 md5:4ff234995709b9ab
func (*X结构_AdapterRedis) X更新值 ¶
func (c *X结构_AdapterRedis) X更新值(上下文 context.Context, 名称 interface{}, 值 interface{}) (旧值 *gvar.X结构_泛型类, exist bool, err error)
X更新值 更新`key`的值,不改变其过期时间,并返回旧的值。 如果`key`在缓存中不存在,返回的值`exist`为false。
如果给定的`value`为nil,它会删除`key`。 如果`key`不在缓存中,它不会做任何操作。 md5:6d92816db5b1d3bd
func (*X结构_AdapterRedis) X更新过期时间 ¶
func (c *X结构_AdapterRedis) X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)
X更新过期时间 更新键`key`的过期时间,并返回旧的过期持续时间值。
如果`key`在缓存中不存在,它将返回-1并什么都不做。如果`duration`小于0,它会删除`key`。 md5:b974907dd46b44be
func (*X结构_AdapterRedis) X清空 ¶
func (c *X结构_AdapterRedis) X清空(上下文 context.Context) (错误 error)
X清空 清空缓存中的所有数据。 注意,此函数具有敏感性,应谨慎使用。 它使用了 Redis 服务器中的 `FLUSHDB` 命令,但该命令可能在服务器中被禁用。 md5:e9b895cf3a7760c0
func (*X结构_AdapterRedis) X设置Map ¶
func (c *X结构_AdapterRedis) X设置Map(上下文 context.Context, 值 map[interface{}]interface{}, 时长 time.Duration) error
X设置Map 批量设置缓存,使用 `data` 映射(键值对)的方式,其在 `duration` 后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或给定的 `value` 为 `nil`,则会删除 `data` 中的键。 md5:a09a11cd5d9d21e6
func (*X结构_AdapterRedis) X设置值 ¶
func (c *X结构_AdapterRedis) X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (err error)
X设置值 使用键值对 `key`-`value` 设置缓存,该缓存在 `duration` 时间后过期。
如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,它将删除 `data` 中的键。 md5:7faea7b643bffd7c
func (*X结构_AdapterRedis) X设置值并跳过已存在 ¶
func (c *X结构_AdapterRedis) X设置值并跳过已存在(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) (bool, error)
X设置值并跳过已存在 如果缓存中不存在`key`,则设置过期时间为`duration`的`key`-`value`对。如果成功将`value`设置到缓存中,它会返回`true`,表示`key`在缓存中不存在;否则返回`false`。
如果`duration`为0,缓存不会过期。 如果`duration`小于0或给定的`value`为`nil`,它会删除`key`。 md5:38aa90beb53ed441
func (*X结构_AdapterRedis) X设置值并跳过已存在_函数 ¶
func (c *X结构_AdapterRedis) X设置值并跳过已存在_函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (成功 bool, 错误 error)
X设置值并跳过已存在_函数 如果`key`不存在于缓存中,则使用函数`f`的结果设置`key`并返回true。 否则,如果`key`已存在,则不做任何操作并返回false。
参数`value`可以是类型为`func() interface{}`的函数, 但如果其结果为nil,则不会执行任何操作。
如果`duration`等于0,则不设置过期时间。 如果`duration`小于0或给定的`value`为nil,则删除该`key`。 md5:8300c80b9bab735d
func (*X结构_AdapterRedis) X设置值并跳过已存在_并发安全函数 ¶
func (c *X结构_AdapterRedis) X设置值并跳过已存在_并发安全函数(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) (成功 bool, 错误 error)
X设置值并跳过已存在_并发安全函数 当`key`在缓存中不存在时,使用函数`f`的结果设置`key`,并返回true。 如果`key`已经存在,则不执行任何操作并返回false。
如果`duration`等于0,则不会过期。 如果`duration`小于0或给定的`value`为nil,将删除`key`。
注意,它与函数`SetIfNotExistFunc`的区别在于,函数`f`在写入互斥锁内部执行,以保证并发安全性。 md5:629e13ace9eaf720
type X结构_缓存 ¶
type X结构_缓存 struct {
// contains filtered or unexported fields
}
X结构_缓存 struct.
func (*X结构_缓存) X取值或设置值PANI ¶
func (c *X结构_缓存) X取值或设置值PANI(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值PANI 的行为类似于 GetOrSet,但是如果发生任何错误,它会直接 panic。 md5:684c6b06451a2f6f
func (*X结构_缓存) X取值或设置值_函数PANI ¶
func (c *X结构_缓存) X取值或设置值_函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值_函数PANI 行为类似于 GetOrSetFunc,但如果发生任何错误,则会引发 panic。 md5:07fd1ef2dbfce0b4
func (*X结构_缓存) X取值或设置值_并发安全函数PANI ¶
func (c *X结构_缓存) X取值或设置值_并发安全函数PANI(上下文 context.Context, 名称 interface{}, 回调函数 X函数类型_Func, 时长 time.Duration) *gvar.X结构_泛型类
X取值或设置值_并发安全函数PANI 行为与 GetOrSetFuncLock 类似,但如果发生任何错误,它将引发恐慌。 md5:7f84f54a71da5305
func (*X结构_缓存) X取所有键值Map副本PANI ¶
X取所有键值Map副本PANI的行为就像Data一样,但如果发生任何错误,它会引发恐慌。 md5:b53b751e2003cd20
func (*X结构_缓存) X取所有键文本PANI ¶
X取所有键文本PANI 的行为类似于 KeyStrings,但如果发生任何错误,它会直接 panic。 md5:3efe93008da2eb0f
func (*X结构_缓存) X取过期时间PANI ¶
X取过期时间PANI 的行为类似于 GetExpire,但如果发生任何错误,它会直接 panic。 md5:c97fa5941bbc47a3