github.com/TeaOSLab/EdgeNode@v1.3.8/internal/caches/list_interface.go (about)

     1  // Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
     2  
     3  package caches
     4  
     5  type ListInterface interface {
     6  	// Init 初始化
     7  	Init() error
     8  
     9  	// Reset 重置数据
    10  	Reset() error
    11  
    12  	// Add 添加内容
    13  	Add(hash string, item *Item) error
    14  
    15  	// Exist 检查内容是否存在
    16  	Exist(hash string) (ok bool, size int64, err error)
    17  
    18  	// CleanPrefix 清除某个前缀的缓存
    19  	CleanPrefix(prefix string) error
    20  
    21  	// CleanMatchKey 清除通配符匹配的Key
    22  	CleanMatchKey(key string) error
    23  
    24  	// CleanMatchPrefix 清除通配符匹配的前缀
    25  	CleanMatchPrefix(prefix string) error
    26  
    27  	// Remove 删除内容
    28  	Remove(hash string) error
    29  
    30  	// Purge 清理过期数据
    31  	Purge(count int, callback func(hash string) error) (int, error)
    32  
    33  	// PurgeLFU 清理LFU数据
    34  	PurgeLFU(count int, callback func(hash string) error) error
    35  
    36  	// CleanAll 清除所有缓存
    37  	CleanAll() error
    38  
    39  	// Stat 统计
    40  	Stat(check func(hash string) bool) (*Stat, error)
    41  
    42  	// Count 总数量
    43  	Count() (int64, error)
    44  
    45  	// OnAdd 添加事件
    46  	OnAdd(f func(item *Item))
    47  
    48  	// OnRemove 删除事件
    49  	OnRemove(f func(item *Item))
    50  
    51  	// Close 关闭
    52  	Close() error
    53  
    54  	// IncreaseHit 增加点击量
    55  	IncreaseHit(hash string) error
    56  }