cache

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2024 License: BSD-3-Clause-Clear Imports: 9 Imported by: 0

README

cache

该库是go语言实现的低配版缓存库,类似redis超级阉割版本
该库只将淘汰时间精确到了秒
并且设计上并不支持高精度操作和储蓄大量数据(除非你有足够的内存和超高的性能)

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NegativeNumberErrMsg = errors.New("negative number")

NegativeNumberErrMsg 负数错误

View Source
var NumberBigErrMsg = errors.New("number too big")

NumberBigErrMsg 数字过大

View Source
var TypeErrMsg = errors.New("type error")

TypeErrMsg 不支持的的类型转换

Functions

This section is empty.

Types

type Cache

type Cache[K comparable, V any] struct {
	// contains filtered or unexported fields
}

func NewCache

func NewCache[K comparable, V any]() *Cache[K, V]

NewCache 创建一个新的缓存实例 K: 键的类型(可比较) V: 值的类型(允许any)

func (*Cache[K, V]) Del

func (c *Cache[K, V]) Del(key K) (bool, error)

Del 删除数据 key: 键 返回值: 是否删除成功 错误

func (*Cache[K, V]) Destroy

func (c *Cache[K, V]) Destroy()

Destroy 销毁缓存实例 关闭缓存实例

func (*Cache[K, V]) Get

func (c *Cache[K, V]) Get(key K) (V, int64, bool)

Get 获取数据 key: 键 返回值: 数据 剩余时间 是否存在

func (*Cache[K, V]) GetAll added in v0.0.2

func (c *Cache[K, V]) GetAll() map[K]Data[V]

GetAll 获取所有数据 返回值: 数据 该功能为一些状态API提供支持

func (*Cache[K, V]) GetBool

func (c *Cache[K, V]) GetBool(key K) (bool, bool, error)

GetBool 获取数据并转为bool key: 键 返回值: 数据 是否存在 error 支持类型: bool,[int*,uint*,float*]非0为true

func (*Cache[K, V]) GetData

func (c *Cache[K, V]) GetData(key K) (V, bool)

GetData 获取数据 key: 键 返回值: 数据 剩余时间 是否存在

func (*Cache[K, V]) GetFloat32

func (c *Cache[K, V]) GetFloat32(key K) (float32, bool, error)

GetFloat32 获取数据并转为float32 key: 键 返回值: 数据 是否存在 error [储蓄超过32位精度数字会出现number too big] 支持类型: int*,uint*,float*

func (*Cache[K, V]) GetFloat64

func (c *Cache[K, V]) GetFloat64(key K) (float64, bool, error)

GetFloat64 获取数据并转为float64 key: 键 返回值: 数据 是否存在 error 支持类型: int*,uint*,float*

func (*Cache[K, V]) GetInt

func (c *Cache[K, V]) GetInt(key K) (int, bool, error)

GetInt 获取数据并转为int key: 键 返回值: 数据 是否存在 error [int64,uint64,float64在32位系统上会出现type error] 支持类型: int*,uint*,float*(丢失精度)

func (*Cache[K, V]) GetInt64

func (c *Cache[K, V]) GetInt64(key K) (int64, bool, error)

GetInt64 获取数据并转为int64 key: 键 返回值: 数据 是否存在 error 支持类型: int*,uint*,float*(丢失精度)

func (*Cache[K, V]) GetString

func (c *Cache[K, V]) GetString(key K) (string, bool, error)

GetString 获取数据并转为string key: 键 返回值: 数据 是否存在 error 支持类型: string,int*,uint*,float*,bool

func (*Cache[K, V]) GetTTL

func (c *Cache[K, V]) GetTTL(key K) (int64, bool)

GetTTL 获取数据剩余时间 key: 键 返回值: 剩余时间 是否存在 时间为-1表示永不过期

func (*Cache[K, V]) GetTime

func (c *Cache[K, V]) GetTime(key K) (time.Time, bool)

GetTime 获取数据到期时间 key: 键 返回值: 到期时间 是否存在

func (*Cache[K, V]) GetUint

func (c *Cache[K, V]) GetUint(key K) (uint, bool, error)

GetUint 获取数据并转为uint key: 键 返回值: 数据 是否存在 error [负数会导致negative number] [int64,uint64,float64在32位系统上会出现type error] 支持类型: int*,uint*,float*

func (*Cache[K, V]) GetUint64

func (c *Cache[K, V]) GetUint64(key K) (uint64, bool, error)

GetUint64 获取数据并转为uint64 key: 键 返回值: 数据 是否存在 error [负数会导致negative number] 支持类型: int*,uint*,float*

func (*Cache[K, V]) Set

func (c *Cache[K, V]) Set(key K, val V, ttl int64) (bool, error)

Set 设置数据 数据存在则报错 key: 键 Val: 数据 ttl: 过期时间(秒) 0表示永不过期 返回值: 是否设置成功 错误

func (*Cache[K, V]) SetCallBack

func (c *Cache[K, V]) SetCallBack() SetCallback[K, V]

func (*Cache[K, V]) SetData

func (c *Cache[K, V]) SetData(key K, val V) (bool, error)

SetData 设置数据 数据存在则报错 永不过期 key: 键 Val: 数据 返回值: 是否设置成功 错误 返回值: 是否设置成功 错误

func (*Cache[K, V]) SetFatalFunc

func (c *Cache[K, V]) SetFatalFunc(f func(error))

func (*Cache[K, V]) SetPersist

func (c *Cache[K, V]) SetPersist(path string) error

SetPersist 设置持久化储蓄 path: 文件路径 警告: 请在创建缓存同时设置,否则会出现原有数据丢失 *如果需要储蓄自定义结构体,请在init包使用gob.Register()注册

func (*Cache[K, V]) UpdateData

func (c *Cache[K, V]) UpdateData(key K, val V) (bool, error)

UpdateData 更新数据 key: 键 Val: 数据 返回值: 是否更新成功 错误

func (*Cache[K, V]) UpdateTTL

func (c *Cache[K, V]) UpdateTTL(key K, ttl int64) (bool, error)

UpdateTTL 更新数据过期时间 key: 键 ttl: 过期时间(秒) 0表示永不过期 返回值: 是否更新成功 错误

func (*Cache[K, V]) UpdateTime

func (c *Cache[K, V]) UpdateTime(key K, t time.Time) (bool, error)

UpdateTime 更新数据到期时间(time.Time) key: 键 t: 到期时间 返回值: 是否更新成功 错误

type Data

type Data[V any] struct {
	End time.Time // 过期时间 v.End.IsZero()=true表示永不过期
	Val V         // 数据
}

type SetCallback

type SetCallback[K comparable, V any] struct {
	// contains filtered or unexported fields
}

func (SetCallback[K, V]) SetDel

func (c SetCallback[K, V]) SetDel(f func(K, Data[V]))

func (SetCallback[K, V]) SetGet

func (c SetCallback[K, V]) SetGet(f func(K, Data[V]))

func (SetCallback[K, V]) SetGetData

func (c SetCallback[K, V]) SetGetData(f func(K, Data[V]))

func (SetCallback[K, V]) SetGetTTL

func (c SetCallback[K, V]) SetGetTTL(f func(K, Data[V]))

func (SetCallback[K, V]) SetSet

func (c SetCallback[K, V]) SetSet(f func(K, Data[V]))

func (SetCallback[K, V]) SetUpData

func (c SetCallback[K, V]) SetUpData(f func(K, Data[V]))

func (SetCallback[K, V]) SetUpTTL

func (c SetCallback[K, V]) SetUpTTL(f func(K, Data[V]))

Jump to

Keyboard shortcuts

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