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

     1  package caches
     2  
     3  import (
     4  	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
     5  )
     6  
     7  // StorageInterface 缓存存储接口
     8  type StorageInterface interface {
     9  	// Init 初始化
    10  	Init() error
    11  
    12  	// OpenReader 读取缓存
    13  	OpenReader(key string, useStale bool, isPartial bool) (reader Reader, err error)
    14  
    15  	// OpenWriter 打开缓存写入器等待写入
    16  	// size 和 maxSize 可能为-1
    17  	OpenWriter(key string, expiresAt int64, status int, headerSize int, bodySize int64, maxSize int64, isPartial bool) (Writer, error)
    18  
    19  	// OpenFlushWriter 打开从其他媒介直接刷入的写入器
    20  	OpenFlushWriter(key string, expiresAt int64, status int, headerSize int, bodySize int64) (Writer, error)
    21  
    22  	// Delete 删除某个键值对应的缓存
    23  	Delete(key string) error
    24  
    25  	// Stat 统计缓存
    26  	Stat() (*Stat, error)
    27  
    28  	// TotalDiskSize 消耗的磁盘尺寸
    29  	TotalDiskSize() int64
    30  
    31  	// TotalMemorySize 内存尺寸
    32  	TotalMemorySize() int64
    33  
    34  	// CleanAll 清除所有缓存
    35  	CleanAll() error
    36  
    37  	// Purge 批量删除缓存
    38  	// urlType 值为file|dir
    39  	Purge(keys []string, urlType string) error
    40  
    41  	// Stop 停止缓存策略
    42  	Stop()
    43  
    44  	// Policy 获取当前存储的Policy
    45  	Policy() *serverconfigs.HTTPCachePolicy
    46  
    47  	// UpdatePolicy 修改策略
    48  	UpdatePolicy(newPolicy *serverconfigs.HTTPCachePolicy)
    49  
    50  	// CanUpdatePolicy 检查策略是否可以更新
    51  	CanUpdatePolicy(newPolicy *serverconfigs.HTTPCachePolicy) bool
    52  
    53  	// AddToList 将缓存添加到列表
    54  	AddToList(item *Item)
    55  
    56  	// IgnoreKey 忽略某个Key,即不缓存某个Key
    57  	IgnoreKey(key string, maxSize int64)
    58  
    59  	// CanSendfile 是否支持Sendfile
    60  	CanSendfile() bool
    61  }