Documentation
¶
Index ¶
- Constants
- Variables
- func Cacheable[T any](bucketName BucketName, cacheKey CacheKey, result *T, supplier Supplier[*T], ...) error
- func EvictCache(bucketName BucketName, cacheKey CacheKey, keyAppend ...interface{}) error
- func GetCacheValue(bucketName BucketName, cacheKey CacheKey, result any, keyAppend ...interface{}) error
- func Init(option Option, cacheConfigs ...CacheConfig)
- func PutCacheValue(bucketName BucketName, cacheKey CacheKey, data any, keyAppend ...interface{}) error
- type BucketName
- type BucketType
- type CacheBucket
- type CacheConfig
- func NewDistMemCacheConfig(name BucketName, expire time.Duration) CacheConfig
- func NewLevel2CacheConfig(name BucketName, memExpire, redisExpire time.Duration) CacheConfig
- func NewMemCacheConfig(name BucketName, expire time.Duration) CacheConfig
- func NewRedisCacheConfig(name BucketName, expire time.Duration) CacheConfig
- type CacheKey
- type Option
- type Supplier
Constants ¶
View Source
const ( BucketTypeMem BucketType = "mem" BucketTypeDistMem = "dist-mem" BucketTypeRedis = "redis" BucketTypeLevel2 = "level-2" )
Variables ¶
View Source
var CacheMiss = errors.New("cache miss")
Functions ¶
func Cacheable ¶
func Cacheable[T any](bucketName BucketName, cacheKey CacheKey, result *T, supplier Supplier[*T], keyAppend ...interface{}) error
Cacheable 通过指定的存储桶和缓存key,获取缓存值,如果缓存值不存在,则调用supplier获取值,并设置缓存值
func EvictCache ¶
func EvictCache(bucketName BucketName, cacheKey CacheKey, keyAppend ...interface{}) error
EvictCache 通过指定的存储桶和缓存key,删除缓存值
func GetCacheValue ¶
func GetCacheValue(bucketName BucketName, cacheKey CacheKey, result any, keyAppend ...interface{}) error
GetCacheValue 通过指定的存储桶和缓存key,获取缓存值
func Init ¶
func Init(option Option, cacheConfigs ...CacheConfig)
func PutCacheValue ¶
func PutCacheValue(bucketName BucketName, cacheKey CacheKey, data any, keyAppend ...interface{}) error
PutCacheValue 通过指定的存储桶和缓存key,设置缓存值
Types ¶
type CacheBucket ¶
type CacheBucket interface { // Get 获取指定key对应的值 // result 值类型指针 缓存未命中时返回标准错误 CacheMiss Get(key CacheKey, result any, keyAppend ...interface{}) error // Put 设置key对应值 Put(key CacheKey, data any, keyAppend ...interface{}) error // Evict 清除缓存 Evict(key CacheKey, keyAppend ...interface{}) error }
func GetBucketByType ¶
func GetBucketByType(bucketName BucketName, typ BucketType) CacheBucket
GetBucketByType 通过指定的存储桶和类型,获取存储桶实例
type CacheConfig ¶
type CacheConfig struct {
// contains filtered or unexported fields
}
CacheConfig 缓存key
func NewDistMemCacheConfig ¶
func NewDistMemCacheConfig(name BucketName, expire time.Duration) CacheConfig
NewDistMemCacheConfig 创建一个分布式内存缓存配置
func NewLevel2CacheConfig ¶
func NewLevel2CacheConfig(name BucketName, memExpire, redisExpire time.Duration) CacheConfig
NewLevel2CacheConfig 创建一个二级缓存配置
func NewMemCacheConfig ¶
func NewMemCacheConfig(name BucketName, expire time.Duration) CacheConfig
NewMemCacheConfig 创建一个内存缓存配置
func NewRedisCacheConfig ¶
func NewRedisCacheConfig(name BucketName, expire time.Duration) CacheConfig
NewRedisCacheConfig 创建一个redis缓存配置
type CacheKey ¶
type CacheKey struct { // 最终key值的格式化格式 将使用 fmt.Sprintf(key.KeyFormat, keyAppend) 进行处理 KeyFormat string }
func (CacheKey) RawKeyString ¶
RawKeyString 返回原始的key字符串
Click to show internal directories.
Click to hide internal directories.