缓存类

package
v0.0.0-...-782a3f7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

包 gcache 为进程提供各种缓存管理。

默认情况下,它提供了一个并发安全的内存缓存适配器给进程。 md5:83aa9516287cdc99

Index

Constants

View Source
const (
	X常量_持续时间_无期限 = time.Duration(0) // 永不过期的持续时间。 md5:2536f018477cbf65
)

Variables

This section is empty.

Functions

func X删除

func X删除(上下文 context.Context, 名称s []interface{}) error

从缓存中删除`keys`。 md5:370028bf9f2e1d24

func X删除并带返回值

func X删除并带返回值(上下文 context.Context, 名称s ...interface{}) (可选值 *gvar.X结构_泛型类, err error)

X删除并带返回值 从缓存中删除一个或多个键,并返回其值。 如果给出了多个键,它将返回最后删除项的值。 md5:d3b1c8af168b0ebf

func X取值

func X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)

X取值 从缓存中检索并返回给定 `key` 的关联值。如果不存在、值为nil或已过期,它将返回nil。如果你想检查`key`是否存在于缓存中,建议使用Contains函数。 md5:f78c30f8338ce106

func X取值PANI

func X取值PANI(上下文 context.Context, 名称 interface{}) *gvar.X结构_泛型类

X取值PANI 的行为就像 Get 一样,但如果发生任何错误,它会引发 panic。 md5:9004545d221e9637

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取成员数

func X取成员数(上下文 context.Context) (int, error)

X取成员数 返回缓存中的项目数量。 md5:2122f80de9340261

func X取成员数PANI

func X取成员数PANI(上下文 context.Context) int

X取成员数PANI 行为类似于 Size,但在发生错误时会引发 panic。 md5:cee955b74cc42d5c

func X取所有值

func X取所有值(上下文 context.Context) ([]interface{}, error)

X取所有值 返回缓存中所有的值作为切片。 md5:dc00b32eb8913e9b

func X取所有值PANI

func X取所有值PANI(上下文 context.Context) []interface{}

X取所有值PANI 行为类似于 Values,但如果发生任何错误则会引发 panic。 md5:859aff610512a748

func X取所有键

func X取所有键(上下文 context.Context) ([]interface{}, error)

X取所有键 返回缓存中所有键的切片。 md5:7ebd9dba01282dc2

func X取所有键PANI

func X取所有键PANI(上下文 context.Context) []interface{}

X取所有键PANI 行为与 Keys 类似,但如果发生任何错误,它将引发 panic。 md5:7f7801d0cd170166

func X取所有键值Map副本

func X取所有键值Map副本(上下文 context.Context) (map[interface{}]interface{}, error)

X取所有键值Map副本 返回缓存中所有键值对的副本,以映射类型形式呈现。 注意:此函数可能会占用大量内存,请根据需要决定是否实现该功能。 md5:c44cdbd9b10ab98f

func X取所有键值Map副本PANI

func X取所有键值Map副本PANI(上下文 context.Context) map[interface{}]interface{}

X取所有键值Map副本PANI的行为就像Data一样,但如果发生任何错误,它会引发恐慌。 md5:b53b751e2003cd20

func X取所有键文本

func X取所有键文本(上下文 context.Context) ([]string, error)

X取所有键文本返回缓存中的所有键作为字符串切片。 md5:3b0126221389825e

func X取所有键文本PANI

func X取所有键文本PANI(上下文 context.Context) []string

X取所有键文本PANI 的行为类似于 KeyStrings,但如果发生任何错误,它会直接 panic。 md5:3efe93008da2eb0f

func X取过期时间

func X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)

X取过期时间 从缓存中检索并返回 `key` 的过期时间。

注意, 如果 `key` 没有过期,它将返回 0。 如果 `key` 不在缓存中,它将返回 -1。 md5:d80ce12df8668b97

func X取过期时间PANI

func X取过期时间PANI(上下文 context.Context, 名称 interface{}) time.Duration

X取过期时间PANI 的行为类似于 GetExpire,但如果发生任何错误,它会直接 panic。 md5:c97fa5941bbc47a3

func X是否存在

func X是否存在(上下文 context.Context, 名称 interface{}) (bool, error)

X是否存在 检查并返回如果 `key` 在缓存中存在则为真,否则为假。 md5:4ff234995709b9ab

func X是否存在PANI

func X是否存在PANI(上下文 context.Context, 名称 interface{}) bool

X是否存在PANI 的行为就像 Contains,但如果发生任何错误,它将引发恐慌。 md5:63cc1bbb0025d8b1

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更新过期时间

func X更新过期时间(上下文 context.Context, 名称 interface{}, 时长 time.Duration) (旧过期时长 time.Duration, 错误 error)

X更新过期时间 更新键`key`的过期时间,并返回旧的过期持续时间值。

如果`key`在缓存中不存在,它将返回-1并什么都不做。如果`duration`小于0,它会删除`key`。 md5:b974907dd46b44be

func X设置Map

func 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设置值

func X设置值(上下文 context.Context, 名称 interface{}, 值 interface{}, 时长 time.Duration) error

X设置值 使用键值对 `key`-`value` 设置缓存,该缓存在 `duration` 时间后过期。

如果 `duration` 等于 0,则不会过期。 如果 `duration` 小于 0 或者给定的 `value` 为 nil,它将删除 `data` 中的键。 md5:7faea7b643bffd7c

func X设置值并跳过已存在

func 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设置值并跳过已存在_函数

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

func NewAdapterRedis(redis *gredis.X结构_Redis) Adapter

NewAdapterRedis 创建并返回一个新的内存缓存对象。 md5:ac9ad598fcd2adbb

func X创建内存适配器

func X创建内存适配器(淘汰数量 ...int) Adapter

X创建内存适配器 创建并返回一个新的内存缓存对象。 md5:188f107c550c0b2e

type X函数类型_Func

type X函数类型_Func func(ctx context.Context) (value interface{}, err error)

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取值

func (c *X结构_AdapterMemory) X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)

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取过期时间

func (c *X结构_AdapterMemory) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)

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取值

func (c *X结构_AdapterRedis) X取值(上下文 context.Context, 名称 interface{}) (*gvar.X结构_泛型类, error)

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取过期时间

func (c *X结构_AdapterRedis) X取过期时间(上下文 context.Context, 名称 interface{}) (time.Duration, error)

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创建

func X创建(淘汰数量 ...int) *X结构_缓存

X创建 使用默认的内存适配器创建并返回一个新的缓存对象。 请注意,LRU(最近最少使用)功能仅在使用内存适配器时可用。 md5:658995a71d08fbbe

func X创建并按适配器

func X创建并按适配器(适配器 Adapter) *X结构_缓存

X创建并按适配器 使用给定的实现了Adapter接口的适配器创建并返回一个Cache对象。 md5:0c92c6f9af030ccb

func (*X结构_缓存) X删除

func (c *X结构_缓存) X删除(上下文 context.Context, 名称s []interface{}) error

从缓存中删除`keys`。 md5:370028bf9f2e1d24

func (*X结构_缓存) X取值PANI

func (c *X结构_缓存) X取值PANI(上下文 context.Context, 名称 interface{}) *gvar.X结构_泛型类

X取值PANI 的行为就像 Get 一样,但如果发生任何错误,它会引发 panic。 md5:9004545d221e9637

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取成员数PANI

func (c *X结构_缓存) X取成员数PANI(上下文 context.Context) int

X取成员数PANI 行为类似于 Size,但在发生错误时会引发 panic。 md5:cee955b74cc42d5c

func (*X结构_缓存) X取所有值PANI

func (c *X结构_缓存) X取所有值PANI(上下文 context.Context) []interface{}

X取所有值PANI 行为类似于 Values,但如果发生任何错误则会引发 panic。 md5:859aff610512a748

func (*X结构_缓存) X取所有键PANI

func (c *X结构_缓存) X取所有键PANI(上下文 context.Context) []interface{}

X取所有键PANI 行为与 Keys 类似,但如果发生任何错误,它将引发 panic。 md5:7f7801d0cd170166

func (*X结构_缓存) X取所有键值Map副本PANI

func (c *X结构_缓存) X取所有键值Map副本PANI(上下文 context.Context) map[interface{}]interface{}

X取所有键值Map副本PANI的行为就像Data一样,但如果发生任何错误,它会引发恐慌。 md5:b53b751e2003cd20

func (*X结构_缓存) X取所有键文本

func (c *X结构_缓存) X取所有键文本(上下文 context.Context) ([]string, error)

X取所有键文本返回缓存中的所有键作为字符串切片。 md5:3b0126221389825e

func (*X结构_缓存) X取所有键文本PANI

func (c *X结构_缓存) X取所有键文本PANI(上下文 context.Context) []string

X取所有键文本PANI 的行为类似于 KeyStrings,但如果发生任何错误,它会直接 panic。 md5:3efe93008da2eb0f

func (*X结构_缓存) X取过期时间PANI

func (c *X结构_缓存) X取过期时间PANI(上下文 context.Context, 名称 interface{}) time.Duration

X取过期时间PANI 的行为类似于 GetExpire,但如果发生任何错误,它会直接 panic。 md5:c97fa5941bbc47a3

func (*X结构_缓存) X取适配器

func (c *X结构_缓存) X取适配器() Adapter

X取适配器 返回当前缓存中设置的适配器。 md5:e93da9e47a8b0c21

func (*X结构_缓存) X是否存在PANI

func (c *X结构_缓存) X是否存在PANI(上下文 context.Context, 名称 interface{}) bool

X是否存在PANI 的行为就像 Contains,但如果发生任何错误,它将引发恐慌。 md5:63cc1bbb0025d8b1

func (*X结构_缓存) X设置适配器

func (c *X结构_缓存) X设置适配器(适配器 Adapter)

X设置适配器 更改此缓存的适配器。 非常注意,这个设置函数不是并发安全的,这意味着你不应该在多个goroutine中并发调用此设置函数。 md5:5f950a554baddc2c

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL