Files
EdgeNode/internal/caches/list_interface.go

57 lines
1.2 KiB
Go
Raw Normal View History

2024-05-17 18:30:33 +08:00
// Copyright 2021 GoEdge goedge.cdn@gmail.com. All rights reserved.
2020-10-04 14:30:42 +08:00
2021-05-19 12:07:35 +08:00
package caches
2020-10-04 14:30:42 +08:00
2021-05-19 12:07:35 +08:00
type ListInterface interface {
2021-06-13 17:37:57 +08:00
// Init 初始化
2021-05-19 12:07:35 +08:00
Init() error
2020-12-23 21:28:50 +08:00
2021-06-13 17:37:57 +08:00
// Reset 重置数据
2021-05-19 12:07:35 +08:00
Reset() error
2020-12-23 21:28:50 +08:00
2021-06-13 17:37:57 +08:00
// Add 添加内容
2021-05-19 12:07:35 +08:00
Add(hash string, item *Item) error
2020-10-05 20:23:18 +08:00
2021-06-13 17:37:57 +08:00
// Exist 检查内容是否存在
2024-04-04 08:28:14 +08:00
Exist(hash string) (ok bool, size int64, err error)
2020-10-05 20:23:18 +08:00
2021-06-13 17:37:57 +08:00
// CleanPrefix 清除某个前缀的缓存
CleanPrefix(prefix string) error
2020-10-04 14:30:42 +08:00
// CleanMatchKey 清除通配符匹配的Key
CleanMatchKey(key string) error
// CleanMatchPrefix 清除通配符匹配的前缀
CleanMatchPrefix(prefix string) error
2021-06-13 17:37:57 +08:00
// Remove 删除内容
2021-05-19 12:07:35 +08:00
Remove(hash string) error
2020-10-04 14:30:42 +08:00
2021-06-13 17:37:57 +08:00
// Purge 清理过期数据
Purge(count int, callback func(hash string) error) (int, error)
// PurgeLFU 清理LFU数据
PurgeLFU(count int, callback func(hash string) error) error
2020-10-04 14:30:42 +08:00
2021-06-13 17:37:57 +08:00
// CleanAll 清除所有缓存
2021-05-19 12:07:35 +08:00
CleanAll() error
2020-10-04 14:30:42 +08:00
2021-06-13 17:37:57 +08:00
// Stat 统计
2021-05-19 12:07:35 +08:00
Stat(check func(hash string) bool) (*Stat, error)
2020-10-04 14:30:42 +08:00
2021-05-19 12:07:35 +08:00
// Count 总数量
Count() (int64, error)
2020-10-04 14:30:42 +08:00
2021-05-19 12:07:35 +08:00
// OnAdd 添加事件
OnAdd(f func(item *Item))
2020-10-05 20:23:18 +08:00
2021-05-19 12:07:35 +08:00
// OnRemove 删除事件
OnRemove(f func(item *Item))
2021-06-13 17:37:57 +08:00
// Close 关闭
Close() error
// IncreaseHit 增加点击量
IncreaseHit(hash string) error
2020-10-05 20:23:18 +08:00
}