cache

package
v0.0.10 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: MIT Imports: 11 Imported by: 6

Documentation

Overview

cache/go_cache.go

Index

Constants

This section is empty.

Variables

View Source
var SimpleTool = func(ctx *gin.Context) *Tool[any] {
	return NewCacheTool[any](ctx, caches, nil)
}

Functions

This section is empty.

Types

type Cache

type Cache[T any] interface {
	Get(key string) (T, error)
	Set(key string, value T, expiration time.Duration) error
	Delete(key string) error
}

Cache 是一个通用的缓存接口,定义了基本的缓存操作

type GoCache

type GoCache[T any] struct {
	// contains filtered or unexported fields
}

GoCache 是 go-cache 的实现

func NewGoCache

func NewGoCache[T any](defaultExpiration, cleanupInterval time.Duration) *GoCache[T]

NewGoCache 创建一个新的 GoCache 实例 defaultExpiration: 默认过期时间 cleanupInterval: 清理间隔

func (*GoCache[T]) Delete

func (g *GoCache[T]) Delete(key string) error

Delete 从 go-cache 中删除数据

func (*GoCache[T]) Get

func (g *GoCache[T]) Get(key string) (T, error)

Get 从 go-cache 中获取数据

func (*GoCache[T]) Set

func (g *GoCache[T]) Set(key string, value T, expiration time.Duration) error

Set 将数据存入 go-cache

type LoaderFunc

type LoaderFunc[T any] func(key string) (T, error)

LoaderFunc 是一个用于从外部源加载数据的函数类型

type RedisCache

type RedisCache struct {
	Client *redis.Client
	Ctx    context.Context
}

RedisCache 是 Redis 的实现

var RedisInstance *RedisCache

func GetRedisInstance

func GetRedisInstance() *RedisCache

func NewRedisCache

func NewRedisCache(cfg RedisConfig) (*RedisCache, error)

NewRedisCache 创建一个新的 RedisCache 实例

func (*RedisCache) Delete

func (r *RedisCache) Delete(key string) error

Delete 从 Redis 中删除数据

func (*RedisCache) Get

func (r *RedisCache) Get(key string) (interface{}, error)

Get 从 Redis 中获取数据

func (*RedisCache) Set

func (r *RedisCache) Set(key string, value interface{}, expiration time.Duration) error

Set 将数据存入 Redis

type RedisConfig

type RedisConfig struct {
	Addr     string
	Password string
	DB       int
}

RedisConfig holds the Redis configuration parameters

type Tool

type Tool[T any] struct {
	Ctx *gin.Context
	// contains filtered or unexported fields
}

Tool 是多级缓存的管理工具

func NewCacheTool

func NewCacheTool[T any](ctx *gin.Context, caches []Cache[T], loader LoaderFunc[T]) *Tool[T]

NewCacheTool 创建一个新的 Tool 实例

func (*Tool[T]) Delete

func (c *Tool[T]) Delete(key string) error

Delete 从所有缓存层中删除数据

func (*Tool[T]) Get

func (c *Tool[T]) Get(key string, expiration time.Duration) (T, error)

Get 从缓存中获取数据,依次查找各级缓存,如果都未命中则通过 loader 加载

func (*Tool[T]) Set

func (c *Tool[T]) Set(key string, value T, expiration time.Duration) error

Set 将数据存入所有缓存层

Jump to

Keyboard shortcuts

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