Documentation
¶
Index ¶
- Variables
- func Cleanup() error
- func Clear() error
- func ClearAsync() error
- func Contains(keys ...string) bool
- func ContainsSome(keys ...string) bool
- func ContainsSomeTags(tags ...string) bool
- func ContainsTagKey(tag, key string) bool
- func ContainsTags(tags ...string) bool
- func Decr(key string, opts ...EntryOptions) (int64, error)
- func DecrBy(key string, step int64, opts ...EntryOptions) (int64, error)
- func DefaultExpire() time.Duration
- func Delete(keys ...string) error
- func DeleteTags(tags ...string) error
- func Expire(key string, duration time.Duration) error
- func ExpireAt(key string, expireAt time.Time) error
- func Get(key string) (any, error)
- func GetAndDelete(key string) (any, error)
- func GetAndSet(key string, value any, opts ...EntryOptions) (any, error)
- func GetBool(key string) bool
- func GetBoolD(key string, defaultVal bool) bool
- func GetBoolE(key string) (bool, error)
- func GetComplex128(key string) complex128
- func GetComplex128D(key string, defaultVal complex128) complex128
- func GetComplex128E(key string) (complex128, error)
- func GetComplex64(key string) complex64
- func GetComplex64D(key string, defaultVal complex64) complex64
- func GetComplex64E(key string) (complex64, error)
- func GetDefault() storage.Storager
- func GetEntry(key string) (entry *storage.Entry, err error)
- func GetFloat32(key string) float32
- func GetFloat32D(key string, defaultVal float32) float32
- func GetFloat32E(key string) (float32, error)
- func GetFloat64(key string) float64
- func GetFloat64D(key string, defaultVal float64) float64
- func GetFloat64E(key string) (float64, error)
- func GetIP(key string) net.IP
- func GetIPD(key string, defaultVal net.IP) net.IP
- func GetIPE(key string) (net.IP, error)
- func GetInt(key string) int
- func GetInt16(key string) int16
- func GetInt16D(key string, defaultVal int16) int16
- func GetInt16E(key string) (int16, error)
- func GetInt32(key string) int32
- func GetInt32D(key string, defaultVal int32) int32
- func GetInt32E(key string) (int32, error)
- func GetInt64(key string) int64
- func GetInt64D(key string, defaultVal int64) int64
- func GetInt64E(key string) (int64, error)
- func GetInt8(key string) int8
- func GetInt8D(key string, defaultVal int8) int8
- func GetInt8E(key string) (int8, error)
- func GetIntD(key string, defaultVal int) int
- func GetIntE(key string) (int, error)
- func GetKeyTags(key string) []string
- func GetLogger() *slog.Logger
- func GetMapAny[K values.TypeBase](key string) map[K]any
- func GetMapAnyD[K values.TypeBase](key string, defaultVal map[K]any) map[K]any
- func GetMapAnyE[K values.TypeBase](key string) (map[K]any, error)
- func GetMapAs[K, V values.TypeBase](key string) map[K]V
- func GetMapAsD[K, V values.TypeBase](key string, defaultVal map[K]V) map[K]V
- func GetMapAsE[K, V values.TypeBase](key string) (map[K]V, error)
- func GetMapSlice[K, V values.TypeBase](key string) map[K][]V
- func GetMapSliceD[K, V values.TypeBase](key string, defaultVal map[K][]V) map[K][]V
- func GetMapSliceE[K, V values.TypeBase](key string) (map[K][]V, error)
- func GetOrSet(key string, value any, opts ...EntryOptions) (any, error)
- func GetSliceAny(key string) []any
- func GetSliceAnyD(key string, defaultVal []any) []any
- func GetSliceAnyE(key string) ([]any, error)
- func GetSliceAs[T values.TypeBase | values.TypeBaseSlice](key string) []T
- func GetSliceAsD[T values.TypeBase | values.TypeBaseSlice](key string, defaultVal []T) []T
- func GetSliceAsE[T values.TypeBase | values.TypeBaseSlice](key string) ([]T, error)
- func GetSliceMap[K, V values.TypeBase](key string) []map[K]V
- func GetSliceMapD[K, V values.TypeBase](key string, defaultVal []map[K]V) []map[K]V
- func GetSliceMapE[K, V values.TypeBase](key string) ([]map[K]V, error)
- func GetString(key string) string
- func GetStringD(key string, defaultVal string) string
- func GetStringE(key string) (string, error)
- func GetTagKeys(tag string) []string
- func GetTags() []string
- func GetTime(key string) time.Time
- func GetTimeD(key string, defaultVal time.Time) time.Time
- func GetTimeDuration(key string) time.Duration
- func GetTimeDurationD(key string, defaultVal time.Duration) time.Duration
- func GetTimeDurationE(key string) (time.Duration, error)
- func GetTimeE(key string) (time.Time, error)
- func GetTimeMonth(key string) time.Month
- func GetTimeMonthD(key string, defaultVal time.Month) time.Month
- func GetTimeMonthE(key string) (time.Month, error)
- func GetTimeWeekday(key string) time.Weekday
- func GetTimeWeekdayD(key string, defaultVal time.Weekday) time.Weekday
- func GetTimeWeekdayE(key string) (time.Weekday, error)
- func GetTimeWith(key string, location *time.Location) (time.Time, error)
- func GetUint(key string) uint
- func GetUint16(key string) uint16
- func GetUint16D(key string, defaultVal uint16) uint16
- func GetUint16E(key string) (uint16, error)
- func GetUint32(key string) uint32
- func GetUint32D(key string, defaultVal uint32) uint32
- func GetUint32E(key string) (uint32, error)
- func GetUint64(key string) uint64
- func GetUint64D(key string, defaultVal uint64) uint64
- func GetUint64E(key string) (uint64, error)
- func GetUint8(key string) uint8
- func GetUint8D(key string, defaultVal uint8) uint8
- func GetUint8E(key string) (uint8, error)
- func GetUintD(key string, defaultVal uint) uint
- func GetUintE(key string) (uint, error)
- func Incr(key string, opts ...EntryOptions) (int64, error)
- func IncrBy(key string, step int64, opts ...EntryOptions) (int64, error)
- func LoadDo(key string, refVal any, do func() (setVal any, err error), ...) error
- func MaxEntrySize() int64
- func MaxSize() int64
- func Metrics() *storage.Metrics
- func SIntAdd(key string, items ...int64) error
- func SIntClear(key string) error
- func SIntContains(key string, items ...int64) bool
- func SIntContainsSome(key string, items ...int64) bool
- func SIntMembers(key string) ([]int64, error)
- func SIntRemove(key string, items ...int64) error
- func SIntSize(key string) (int64, error)
- func SIntTraverse(key string, fn func(int64) bool) error
- func SStringAdd(key string, items ...string) error
- func SStringClear(key string) error
- func SStringContains(key string, items ...string) bool
- func SStringContainsSome(key string, items ...string) bool
- func SStringMembers(key string) ([]string, error)
- func SStringRemove(key string, items ...string) error
- func SStringSize(key string) (int64, error)
- func SStringTraverse(key string, fn func(string) bool) error
- func Scan(key string, refVal any) error
- func Set(key string, value any, opts ...EntryOptions) error
- func SetDefault(driver storage.Storager)
- func SetLogger(log *slog.Logger)
- func SetWithExists(key string, value any, opts ...EntryOptions) (updated bool, err error)
- func SetWithNotExists(key string, value any, opts ...EntryOptions) (added bool, err error)
- func StorageType() storage.StorageType
- func TTL(key string) time.Duration
- func TotalCount() int64
- func TotalSize() int64
- func UpdateFn(key string, fn func(getVal any, exits bool) (updateVal any, err error), ...) (any, error)
- func UseLocal() storage.Storager
- func UseRemote() storage.Storager
- type EntryOptions
- type L2CacheOptions
- type MemoryOptions
- type RedisOptions
- type RedisUniversalOptions
- type Storager
Constants ¶
This section is empty.
Variables ¶
var NewL2Cache = driver.NewL2Cache
NewL2Cache 创建并初始化一个 L2Cache 二级缓存实例
- 需要传入 local 和 remote 缓存驱动实例 (通常为 MemoryCache + RedisCache)
var NewL2CacheDefualt = driver.NewL2CacheDefualt
NewL2CacheDefualt 创建一个新的 L2Cache 二级缓存实例, 使用默认配置信息
- local 默认使用 NewMemoryDefault 创建
- remote 默认使用 NewRedisDefault 创建
var NewMemory = driver.NewMemory
NewMemory 创建一个新的 Memcache 实例
var NewMemoryDefault = driver.NewMemoryDefault
NewMemoryDefault 创建一个新的 Memcache 实例, 使用默认配置信息
- MaxSize: 128 // MB
- CacheShardCount: 128
- TagShardCount: 32
- DefaultExpire: 0
- CleanupInterval: time.Minute
var NewRedis = driver.NewRedis
NewRedis 创建一个新的 Redis 实例, 使用默认配置信息
var NewRedisDefault = driver.NewRedisDefault
NewRedisDefault 创建一个新的 Redis 实例, 使用默认配置信息
- Addrs: []string{"localhost:6379"} 无密码连接
var WithExpire = storage.WithExpire
WithExpire 设置过期时间, 最小为1秒, 0 表示不过期, 默认为 Cache Driver => DefaultExpire
var WithTags = storage.WithTags
WithTags 设置缓存 Tags 标签, 可以设置多个标签, 默认为空切片 []string{}
var WithTimeout = storage.WithTimeout
WithTimeout 设置超时时间, 最小为1秒, 默认为3s (部分场景使用, 如: LoadDo, UpdateFn 等场景使用), 默认为3s
Functions ¶
func ContainsSome ¶ added in v1.2.0
ContainsSome 判断缓存 Key 是否存在, 支持多个键查询, 如果有一个或多个键存在则返回true
func ContainsSomeTags ¶ added in v1.2.0
ContainsSomeTags 检查 Tag 标签是否存在, 支持多个键查询, 如果有一个或多个键存在则返回true
func ContainsTagKey ¶ added in v1.2.0
ContainsTagKey 检查 Tag/Key 标签对是否存在
func ContainsTags ¶ added in v1.2.0
ContainsTags 检查 Tag 标签是否存在, 支持多个键查询, 只要有一个键不存在则返回false
func Decr ¶ added in v1.2.0
func Decr(key string, opts ...EntryOptions) (int64, error)
Decr 原子性地将键对应的值减少 -1, 并返回新的值
- 如果键不存在, 则将原子值设为 -1
- 如果键存在, 则更新值 -1
func DecrBy ¶ added in v1.2.0
func DecrBy(key string, step int64, opts ...EntryOptions) (int64, error)
DecrBy 原子性地将键对应的值减少 Step 步进值, 并返回新的值
- 如果键不存在, 则将原子值设为 -Step
- 如果键存在, 则更新值 -Step
func DeleteTags ¶ added in v1.2.0
DeleteTags 依据缓存Tag标签删除缓存项, 同时tag 标签以及对应的 key <=> tags 和 tag <=> keys 的索引集合数据
func Get ¶
Get 获取键对应的值
- 不存在或如果已经过期则返回错误
- 存在则返回缓存值:
- - 标量类型直接返回 Any 缓存数据值
- - 其他返回数据为 msgpack 自动反序列化后的 Any 缓存数据值
func GetAndDelete ¶ added in v1.2.0
GetAndDelete 获取键对应的值, 并删除该键
- 不存在或如果已经过期则返回错误
- 存在则返回值:
- - 标量类型直接返回 Any 缓存数据值
- - 其他返回数据为 msgpack 自动反序列化后的 Any 缓存数据值
func GetAndSet ¶ added in v1.2.0
func GetAndSet(key string, value any, opts ...EntryOptions) (any, error)
GetAndSet 获取键对应的旧值并设置新值
- 不存在或如果已经过期则返回nil
- 存在则返回旧值:
- - 标量类型直接返回 Any 缓存数据值
- - 其他返回数据为 msgpack 自动反序列化后的 Any 缓存数据值
func GetBool ¶
GetBool 获取 bool 类型的缓存值, 如果不存在或已经过期则返回false
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 values.Booler 适配接口的类型
func GetBoolD ¶
GetBoolD 获取 bool 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 values.Booler 适配接口的类型
func GetBoolE ¶ added in v1.2.0
GetBoolE 获取 bool 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 values.Booler 适配接口的类型
func GetComplex128 ¶ added in v1.2.3
func GetComplex128(key string) complex128
GetComplex128 获取 complex128 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, complex64, complex128 类型转换(注意: complex64/128互转精度损失问题)
func GetComplex128D ¶ added in v1.2.3
func GetComplex128D(key string, defaultVal complex128) complex128
GetComplex128D 获取 bool 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, complex64, complex128(注意: complex64/128互转精度损失问题)
func GetComplex128E ¶ added in v1.2.3
func GetComplex128E(key string) (complex128, error)
GetComplex128E 获取 bool 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, complex64, complex128(注意: complex64/128互转精度损失问题)
func GetComplex64 ¶ added in v1.2.3
GetComplex64 获取 complex128 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, complex64, complex128(注意: complex64/128互转精度损失问题)
func GetComplex64D ¶ added in v1.2.3
GetComplex64D 获取 bool 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, complex64, complex128(注意: complex64/128互转精度损失问题)
func GetComplex64E ¶ added in v1.2.3
GetComplex64E 获取 bool 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, complex64, complex128(注意: complex64/128互转精度损失问题)
func GetDefault ¶ added in v1.1.0
GetDefault 获取全局默认缓存实例
- 用户可通过 `SetDefault` 设置自定义默认缓存实例
- 如果默认实例未配置(未初始化),将自动尝试使用默认参数进行初始化( MemoryCache )
- 注意: 此函数禁止内联优化,内联后会导致全局缓存 RedisCache 实例 Stop/Restart 连接异常
func GetFloat32 ¶
GetFloat32 获取 float32 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetFloat32D ¶
GetFloat32D 获取 float32 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetFloat32E ¶ added in v1.2.0
GetFloat32E 获取 float32 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetFloat64 ¶
GetFloat64 获取 float64 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetFloat64D ¶
GetFloat64D 获取 float64 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetFloat64E ¶ added in v1.2.0
GetFloat64E 获取 float64 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.FloatX 适配接口的类型
func GetIP ¶
GetIP 获取 net.IP 类型的缓存值, 如果不存在或已经过期则返回false
- 支持自动转换类型: string, intX, uintX ( 支持数字类型的 IPv4 地址 比如: 3232235521 => 192.168.0.1 )
func GetIPD ¶
GetIPD 获取 net.IP 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX ( 支持数字类型的 IPv4 地址 比如: 3232235521 => 192.168.0.1 )
func GetIPE ¶ added in v1.2.0
GetIPE 获取 net.IP 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX ( 支持数字类型的 IPv4 地址 比如: 3232235521 => 192.168.0.1 )
func GetInt ¶
GetInt 获取 int 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt16 ¶
GetInt16 获取 int16 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt16D ¶
GetInt16D 获取 int16 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt16E ¶ added in v1.2.0
GetInt16E 获取 int16 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt32 ¶
GetInt32 获取 int32 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt32D ¶
GetInt32D 获取 int32 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt32E ¶ added in v1.2.0
GetInt32E 获取 int32 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt64 ¶
GetInt64 获取 int64 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt64D ¶
GetInt64D 获取 int64 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt64E ¶ added in v1.2.0
GetInt64E 获取 int64 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt8 ¶
GetInt8 获取 int8 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt8D ¶
GetInt8D 获取 int8 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetInt8E ¶ added in v1.2.0
GetInt8E 获取 int8 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetIntD ¶
GetIntD 获取 int 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetIntE ¶ added in v1.2.0
GetIntE 获取 int 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetKeyTags ¶ added in v1.2.0
GetKeyTags 获取指定键名 Key 对应的所有缓存 Tags 标签
func GetMapAny ¶ added in v1.2.0
GetMapAny 获取 map[K]any 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持转换目标为任意类型的 map[TypeBase]any
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapAnyD ¶ added in v1.2.0
GetMapAnyD 获取 map[K]any 类型的缓存值, 如果不存在或已经过期则返回默认值
- 支持转换目标为任意类型的 map[TypeBase]any
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapAnyE ¶ added in v1.2.0
GetMapAnyE 获取 map[K]any 类型的缓存值, 如果不存在或已经过期则返回空值 map[K]any 切片和错误信息
- 支持转换目标为任意类型的 map[TypeBase]any
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapAs ¶ added in v1.2.0
GetMapAny 获取 map[K]V 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持转换目标为任意类型的 map[TypeBase]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapAsD ¶ added in v1.2.0
GetMapAsD 获取 map[K]V 类型的缓存值, 如果不存在或已经过期则返回默认值
- 支持转换目标为任意类型的 map[TypeBase]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapAsE ¶ added in v1.2.0
GetMapAsE 获取 map[K]V 类型的缓存值, 如果不存在或已经过期则返回空值 map[K]V 和错误信息
- 支持转换目标为任意类型的 map[TypeBase]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapSlice ¶ added in v1.2.0
GetMapSlice 获取 map[K][]V 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持转换目标为任意类型的 map[TypeBase][]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapSliceD ¶ added in v1.2.0
GetMapSliceD 获取 map[K][]V 类型的缓存值, 如果不存在或已经过期则返回默认值
- 支持转换目标为任意类型的 map[TypeBase][]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetMapSliceE ¶ added in v1.2.0
GetMapSliceE 获取 map[K][]V 类型的缓存值, 如果不存在或已经过期则返回空值 map[K][]V 和错误信息
- 支持转换目标为任意类型的 map[TypeBase][]TypeBase
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday
func GetOrSet ¶ added in v1.2.0
func GetOrSet(key string, value any, opts ...EntryOptions) (any, error)
GetOrSet 获取键对应的值, 如不存在则设置为指定的值
- 不存在或如果已经过期则进行设置并返回设置的值
- 存在则返回旧值:
- - 标量类型直接返回 Any 缓存数据值
- - 其他返回数据为 msgpack 自动反序列化后的 Any 缓存数据值
func GetSliceAny ¶ added in v1.2.0
GetSliceAny 获取 []any 类型的缓存值, 如果不存在或已经过期则返回空值
func GetSliceAnyD ¶ added in v1.2.0
GetSliceAnyD 获取 []any 类型的缓存值, 如果不存在或已经过期则返回defaultVal指定的默认值
func GetSliceAnyE ¶ added in v1.2.0
GetSliceAnyD 获取 []any 类型的缓存值, 如果不存在或已经过期则返回 []any 空值切片和错误信息
func GetSliceAs ¶ added in v1.2.0
func GetSliceAs[T values.TypeBase | values.TypeBaseSlice](key string) []T
GetSliceAs 获取 []T 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回空的 []T 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetSliceAsD ¶ added in v1.2.0
func GetSliceAsD[T values.TypeBase | values.TypeBaseSlice](key string, defaultVal []T) []T
GetSliceAsD 获取 []T 类型的缓存值, 如果不存在或已经过期则返回默认值
- 支持转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回空的 []T 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetSliceAsE ¶ added in v1.2.0
GetSliceAsE 获取 []T 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回空的 []T 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetSliceMap ¶ added in v1.2.0
GetSliceMap 获取 []map[K]V 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回空的 []map[K]V 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetSliceMapD ¶ added in v1.2.0
GetSliceMapD 获取 []map[K]V 类型的缓存值, 如果不存在或已经过期则返回默认值
- 支持转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回空的 []map[K]V 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetSliceMapE ¶ added in v1.2.0
GetSliceMapE 获取 []map[K]V 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回空的 []map[K]V 切片
- TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
func GetString ¶
GetString 获取 string 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 Stringer 接口的类型
func GetStringD ¶
GetStringD 获取 string 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 Stringer 接口的类型
func GetStringE ¶ added in v1.2.0
GetStringD 获取 string 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: bool, string, intX, uintX, floatX 以及实现了 Stringer 接口的类型
func GetTagKeys ¶ added in v1.2.0
GetTagKeys 获取指定 Tag 标签对应的所有缓存 Keys 键名
func GetTime ¶
GetTime 获取 time.Time 类型的缓存值, 如果不存在或已经过期则返回false
- 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
- 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeD ¶
GetTimeD 获取 time.Time 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
- 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeDuration ¶ added in v1.2.0
GetTimeDuration 获取 time.Duration 类型的缓存值, 如果不存在或已经过期则返回false
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeDurationD ¶ added in v1.2.0
GetTimeDurationD 获取 time.Duration 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeDurationE ¶ added in v1.2.0
GetTimeE 获取 time.Duration 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeE ¶ added in v1.2.0
GetTimeE 获取 time.Time 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
- 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeMonth ¶
GetTimeMonth 获取 time.Month 类型的缓存值, 如果不存在或已经过期则返回false
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeMonthD ¶
GetTimeMonthD 获取 time.Month 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeMonthE ¶ added in v1.2.0
GetTimeMonthE 获取 time.Month 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeWeekday ¶
GetTimeWeekday 获取 time.Weekday 类型的缓存值, 如果不存在或已经过期则返回false
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeWeekdayD ¶
GetTimeWeekdayD 获取 time.Weekday 型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeWeekdayE ¶ added in v1.2.0
GetTimeWeekdayE 获取 time.Weekday 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetTimeWith ¶ added in v1.2.0
GetTimeWith 获取指定的时区 time.Time 类型的缓存值, 如果不存在或已经过期则返回false
- 如待转换目标是数值(当做Unix秒级时间戳), 则使用 location 指定的时区
- 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 location 指定的时区
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.Timer 适配接口的类型
func GetUint ¶
GetUint 获取 uint 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint16 ¶
GetUint16 获取 uint16 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint16D ¶
GetUint16D 获取 uint16 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint16E ¶ added in v1.2.0
GetUint16E 获取 uint16 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint32 ¶
GetUint32 获取 uint32 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint32D ¶
GetUint32D 获取 uint32 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint32E ¶ added in v1.2.0
GetUint32E 获取 uint32 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint64 ¶
GetUint64 获取 uint64 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint64D ¶
GetUint64D 获取 uint64 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint64E ¶ added in v1.2.0
GetUint64E 获取 uint64 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint8 ¶
GetUint8 获取 uint8 类型的缓存值, 如果不存在或已经过期则返回空值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint8D ¶
GetUint8D 获取 uint8 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUint8E ¶ added in v1.2.0
GetUint8E 获取 uint8 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUintD ¶
GetUintD 获取 uint 类型的缓存值, 如果不存在或已经过期则返回指定的 defaultVal 默认值
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func GetUintE ¶ added in v1.2.0
GetUintE 获取 uint 类型的缓存值, 如果不存在或已经过期则返回空值和错误信息
- 支持自动转换类型: string, intX, uintX, floatX 以及实现了 values.IntX/UintX 适配接口的类型
func Incr ¶ added in v1.2.0
func Incr(key string, opts ...EntryOptions) (int64, error)
Incr 原子性地将键对应的值增加+1, 并返回新的值
- 如果键不存在, 则将原子值设为 1
- 如果键存在, 则更新值 +1
func IncrBy ¶ added in v1.2.0
func IncrBy(key string, step int64, opts ...EntryOptions) (int64, error)
IncrBy 原子性地将键对应的值增加 Step 步进值, 并返回新的值
- 如果键不存在, 则将原子值设为 Step
- 如果键存在, 则更新值 +Step
func LoadDo ¶ added in v1.2.0
LoadDo 获取键对应的值, 并反序列化解析后赋值到 refVal
- refVal 是一个指向具体类型的指针, 用于存放反序列化后的数据
- 缓存存在: 则反序列化解析后赋值到 refVal
- 缓存不存在: 则执行 Fn 函数获取查询值后设置为缓存(Set Use Opts), 最后赋值到 refVal
- 注意: 请确保 refVal(&T) 的类型和 do() 函数的返回值T类型一致
func SIntAdd ¶ added in v1.2.1
SIntAdd 向指定 key 的 Int64 集合添加一个或多个成员元素
- 如果指定 key 的集合不存在, 则新建集合并添加值到集合
- 如果指定 key 不是一个 Int64 集合, 则返回错误
- 如果指定 key 的集合存在, 则添加值到集合
- 如果 items为空, 则什么也不做, 直接返回nil
func SIntContains ¶ added in v1.2.1
SIntContains 判断一个或多个成员是否全部在指定 key 的 Int64 集合中
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回 false
- 查询多个成员, 任意一个成员不在集合中, 则返回 false
func SIntContainsSome ¶ added in v1.2.1
SIntContainsSome 判断一个或多个成员的中任意一个成员是否在指定 key 的 Int64 集合中
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回 false
- 查询多个成员, 任意一个成员存在集合中, 则返回 true
func SIntMembers ¶ added in v1.2.1
SIntMembers 获取指定 key 的 Int64 集合的所有成员
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回错误
func SIntRemove ¶ added in v1.2.1
SIntRemove 从指定 key 的 Int64 集合中移除一个或多个成员
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回错误
- 如果items为空, 则什么也不做, 直接返回nil
func SIntSize ¶ added in v1.2.1
SIntSize 获取指定 key 的 Int64 集合的成员数量
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回错误
func SIntTraverse ¶ added in v1.2.3
SIntTraverse 遍历指定 key 的 Int64 集合的所有成员
- 如果指定 key 的集合不存或不是一个 Int64 集合, 则返回错误
- fn 签名是 iter.Seq[int64], 迭代过程中, 返回 false 则停止遍历
func SStringAdd ¶ added in v1.2.1
SStringAdd 向指定 key 的 String 集合添加一个或多个成员元素
- 如果指定 key 的集合不存在, 则新建集合并添加值到集合
- 如果指定 key 不是一个 String 集合, 则返回错误
- 如果指定 key 的集合存在, 则添加值到集合
- 如果 items为空, 则什么也不做, 直接返回nil
func SStringClear ¶ added in v1.2.2
SStringClear 清空指定 key 的 String 集合
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回错误
func SStringContains ¶ added in v1.2.1
SStringContains 判断一个或多个成员是否全部在指定 key 的 String 集合中
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回 false
- 查询多个成员, 任意一个成员不在集合中, 则返回 false
func SStringContainsSome ¶ added in v1.2.1
SStringContainsSome 判断一个或多个成员的中任意一个成员是否在指定 key 的 String 集合中
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回 false
- 查询多个成员, 任意一个成员存在集合中, 则返回 true
func SStringMembers ¶ added in v1.2.1
SStringMembers 获取指定 key 的 String 集合的所有成员
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回错误
func SStringRemove ¶ added in v1.2.1
SStringRemove 从指定 key 的 String 集合中移除一个或多个成员
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回错误
- 如果items为空, 则什么也不做, 直接返回nil
func SStringSize ¶ added in v1.2.1
SStringSize 获取指定 key 的 String 集合的成员数量
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回错误
func SStringTraverse ¶ added in v1.2.3
SStringTraverse 遍历指定 key 的 String 集合的所有成员
- 如果指定 key 的集合不存或不是一个 String 集合, 则返回错误
- fn 签名是 iter.Seq[string], 迭代过程中, 返回 false 则停止遍历
func Scan ¶
Scan 获取键对应的值, 并解码到 refVal
- refVal 是一个指向具体数据类型的指针, 用于存放反序列化后的数据
- 不存在或已经过期或反序列化失败则返回错误
- 标量类型直接解析到 refVal
- 其他返回数据为 msgpack 自动反序列化后解析到 refVal
func Set ¶
func Set(key string, value any, opts ...EntryOptions) error
Set 设置键对应的值, 可以通过 EntryOption 设置 Expire, Tag 等选项
func SetDefault ¶ added in v1.2.0
SetDefault 设置全局默认缓存实例
- 注意: 此函数禁止内联优化,内联后会导致全局缓存 RedisCache 实例 Stop/Restart 连接异常
func SetWithExists ¶ added in v1.2.0
func SetWithExists(key string, value any, opts ...EntryOptions) (updated bool, err error)
SetWithExists 仅当缓存 Key 键存在时才更新设置值, 返回True表示更新成功
func SetWithNotExists ¶ added in v1.2.0
func SetWithNotExists(key string, value any, opts ...EntryOptions) (added bool, err error)
SetWithNotExists 仅当缓存 Key 键不存在时才设置值, 返回True表示设置成功
func UpdateFn ¶ added in v1.2.0
func UpdateFn(key string, fn func(getVal any, exits bool) (updateVal any, err error), opts ...EntryOptions) (any, error)
UpdateFn 更新键对应的值
- 如果键不存在, 则执行 Fn 函数设置值并返回设置的默认值(Set Use Opts), 并返回设置的默认值
- 如果键存在, 则执行 Fn 函数更新值并返回更新的新值(Set Without Opts), 并返回更新的新值
Types ¶
type EntryOptions ¶ added in v1.2.3
type EntryOptions = storage.EntryOptions
EntryOptions 缓存项选项, 用于配置缓存行为, 如过期时间、标签等
type L2CacheOptions ¶ added in v1.2.0
type L2CacheOptions = driver.L2CacheOptions
L2CacheOptions 缓存配置选项,用于初始化 L2 缓存实例时设置相关参数
预留配置选项,后续扩展使用
type MemoryOptions ¶
type MemoryOptions = driver.MemoryOptions
MemoryOptions 缓存配置选项结构体
- 关于单个缓存项最大数据大小限制为 MaxSize/CacheShardCount
- 如 MaxSize 为 128MB, CacheShardCount 为 128 个分片,则单个缓存项最大数据大小为 128*1024*1024/128 = 1MB
- 如 MaxSize 为 64MB, CacheShardCount 为 128 个分片,则单个缓存项最大数据大小为 64*1024*1024/128 = 512KB
- 如 MaxSize 为 32MB, CacheShardCount 为 128 个分片,则单个缓存项最大数据大小为 32*1024*1024/128 = 256KB
type RedisUniversalOptions ¶ added in v1.1.0
type RedisUniversalOptions = driver.RedisUniversalOptions