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