cache

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrKeyNotFound = errors.New("cache: key not found")
	ErrInvalidType = errors.New("cache: invalid type")
)

Functions

This section is empty.

Types

type Cache

type Cache interface {
	// Get 获取缓存值
	Get(key string) (interface{}, bool)

	// Put 设置缓存值(带过期时间)
	Put(key string, value interface{}, duration time.Duration) error

	// Forever 永久存储
	Forever(key string, value interface{}) error

	// Has 检查键是否存在
	Has(key string) bool

	// Forget 删除缓存
	Forget(key string) error

	// Flush 清空所有缓存
	Flush() error

	// Increment 增加数值
	Increment(key string, value ...int64) (int64, error)

	// Decrement 减少数值
	Decrement(key string, value ...int64) (int64, error)

	// Remember 如果不存在则创建并返回
	Remember(key string, duration time.Duration, callback func() interface{}) (interface{}, error)

	// RememberForever 永久记忆
	RememberForever(key string, callback func() interface{}) (interface{}, error)

	// Pull 获取并删除
	Pull(key string) (interface{}, bool)

	// Add 仅当键不存在时添加
	Add(key string, value interface{}, duration time.Duration) bool

	// GetMultiple 批量获取
	GetMultiple(keys []string) map[string]interface{}

	// PutMultiple 批量设置
	PutMultiple(values map[string]interface{}, duration time.Duration) error
}

Cache 缓存接口

type Driver

type Driver interface {
	Get(key string) ([]byte, error)
	Put(key string, value []byte, duration time.Duration) error
	Delete(key string) error
	Clear() error
	Has(key string) bool
}

Driver 缓存驱动接口

type FileDriver

type FileDriver struct {
	// contains filtered or unexported fields
}

FileDriver 文件缓存驱动

func NewFileDriver

func NewFileDriver(path string) (*FileDriver, error)

NewFileDriver 创建文件驱动

func (*FileDriver) Clear

func (d *FileDriver) Clear() error

Clear 清空所有缓存

func (*FileDriver) Delete

func (d *FileDriver) Delete(key string) error

Delete 删除缓存

func (*FileDriver) Get

func (d *FileDriver) Get(key string) ([]byte, error)

Get 获取缓存

func (*FileDriver) Has

func (d *FileDriver) Has(key string) bool

Has 检查键是否存在

func (*FileDriver) Put

func (d *FileDriver) Put(key string, value []byte, duration time.Duration) error

Put 设置缓存

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 缓存管理器(支持多驱动)

func NewManager

func NewManager() *Manager

NewManager 创建缓存管理器

func (*Manager) AddStore

func (m *Manager) AddStore(name string, store *Store)

AddStore 添加缓存仓库

func (*Manager) Flush

func (m *Manager) Flush() error

func (*Manager) Forever

func (m *Manager) Forever(key string, value interface{}) error

func (*Manager) Forget

func (m *Manager) Forget(key string) error

func (*Manager) Get

func (m *Manager) Get(key string) (interface{}, bool)

func (*Manager) Has

func (m *Manager) Has(key string) bool

func (*Manager) HasStore

func (m *Manager) HasStore(name string) bool

HasStore 检查仓库是否存在

func (*Manager) Put

func (m *Manager) Put(key string, value interface{}, duration ...interface{}) error

func (*Manager) Remember

func (m *Manager) Remember(key string, duration interface{}, callback func() interface{}) (interface{}, error)

func (*Manager) RememberForever

func (m *Manager) RememberForever(key string, callback func() interface{}) (interface{}, error)

func (*Manager) RemoveStore

func (m *Manager) RemoveStore(name string)

RemoveStore 移除缓存仓库

func (*Manager) Store

func (m *Manager) Store(name ...string) *Store

Store 获取缓存仓库

type MemoryDriver

type MemoryDriver struct {
	// contains filtered or unexported fields
}

MemoryDriver 内存缓存驱动

func NewMemoryDriver

func NewMemoryDriver() *MemoryDriver

NewMemoryDriver 创建内存驱动

func (*MemoryDriver) Clear

func (d *MemoryDriver) Clear() error

Clear 清空所有缓存

func (*MemoryDriver) Delete

func (d *MemoryDriver) Delete(key string) error

Delete 删除缓存

func (*MemoryDriver) Get

func (d *MemoryDriver) Get(key string) ([]byte, error)

Get 获取缓存

func (*MemoryDriver) Has

func (d *MemoryDriver) Has(key string) bool

Has 检查键是否存在

func (*MemoryDriver) Put

func (d *MemoryDriver) Put(key string, value []byte, duration time.Duration) error

Put 设置缓存

type RedisDriver

type RedisDriver struct {
	// contains filtered or unexported fields
}

RedisDriver Redis 缓存驱动

func NewRedisDriver

func NewRedisDriver(addr string, password string, db int) (*RedisDriver, error)

NewRedisDriver 创建 Redis 驱动

func NewRedisDriverWithClient

func NewRedisDriverWithClient(client *redis.Client) *RedisDriver

NewRedisDriverWithClient 使用已有的 Redis 客户端创建驱动

func (*RedisDriver) Clear

func (d *RedisDriver) Clear() error

Clear 清空所有缓存

func (*RedisDriver) Close

func (d *RedisDriver) Close() error

Close 关闭 Redis 连接

func (*RedisDriver) Delete

func (d *RedisDriver) Delete(key string) error

Delete 删除缓存

func (*RedisDriver) Get

func (d *RedisDriver) Get(key string) ([]byte, error)

Get 获取缓存值

func (*RedisDriver) GetClient

func (d *RedisDriver) GetClient() *redis.Client

GetClient 获取原始 Redis 客户端

func (*RedisDriver) Has

func (d *RedisDriver) Has(key string) bool

Has 检查键是否存在

func (*RedisDriver) Put

func (d *RedisDriver) Put(key string, value []byte, duration time.Duration) error

Put 设置缓存值

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store 缓存仓库

func NewStore

func NewStore(driver Driver, prefix string) *Store

NewStore 创建缓存仓库

func (*Store) Add

func (s *Store) Add(key string, value interface{}, duration time.Duration) bool

Add 仅当键不存在时添加

func (*Store) Decrement

func (s *Store) Decrement(key string, value ...int64) (int64, error)

Decrement 减少数值

func (*Store) Flush

func (s *Store) Flush() error

Flush 清空所有缓存

func (*Store) Forever

func (s *Store) Forever(key string, value interface{}) error

Forever 永久存储

func (*Store) Forget

func (s *Store) Forget(key string) error

Forget 删除缓存

func (*Store) Get

func (s *Store) Get(key string) (interface{}, bool)

Get 获取缓存值

func (*Store) GetBool

func (s *Store) GetBool(key string) (bool, bool)

GetBool 获取布尔值

func (*Store) GetFloat

func (s *Store) GetFloat(key string) (float64, bool)

GetFloat 获取浮点数值

func (*Store) GetInt

func (s *Store) GetInt(key string) (int64, bool)

GetInt 获取整数值

func (*Store) GetMultiple

func (s *Store) GetMultiple(keys []string) map[string]interface{}

GetMultiple 批量获取

func (*Store) GetString

func (s *Store) GetString(key string) (string, bool)

GetString 获取字符串值

func (*Store) Has

func (s *Store) Has(key string) bool

Has 检查键是否存在

func (*Store) Increment

func (s *Store) Increment(key string, value ...int64) (int64, error)

Increment 增加数值

func (*Store) Pull

func (s *Store) Pull(key string) (interface{}, bool)

Pull 获取并删除

func (*Store) Put

func (s *Store) Put(key string, value interface{}, duration time.Duration) error

Put 设置缓存值

func (*Store) PutMultiple

func (s *Store) PutMultiple(values map[string]interface{}, duration time.Duration) error

PutMultiple 批量设置

func (*Store) Remember

func (s *Store) Remember(key string, duration time.Duration, callback func() interface{}) (interface{}, error)

Remember 如果不存在则创建并返回

func (*Store) RememberForever

func (s *Store) RememberForever(key string, callback func() interface{}) (interface{}, error)

RememberForever 永久记忆

Jump to

Keyboard shortcuts

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