cachedata

package
v0.0.0-...-58a2b35 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MSGID_syncData      = 2001 //数据同步
	MSGID_syncData_recv = 2002 //数据同步 返回
)
View Source
const (
	Task_class_share_cache_data       = "Task_class_share_cache_data"       //定时发送自己上传的文件索引信息
	Task_class_share_clear_cache      = "Task_class_share_clear_cache"      //节点没有收到数据,清理Cache
	Task_class_share_clear_cache_data = "Task_class_share_clear_cache_data" //节点没有收到数据,清理CacheData
)

Variables

View Source
var (
	TimeInterval               = 20               //数据同步时间间隔,单位秒
	TimeIntervalClearCache     = 30 * time.Second //节点没有收到数据,清理Cache的时间间隔,1/4节点最近节点重新上线,则本节点将收不到数据,则清理。
	TimeIntervalClearCacheData = 15 * time.Second //节点没有收到数据,清理CachedData的时间间隔,即删除数据清理
)
View Source
var (
	Version = uint64(0x00)
)

Functions

func AddSyncDataTask

func AddSyncDataTask(params []byte)

加入定时器

func Del

func Del(key []byte)

删除cachedata

func Get

func Get(key []byte) []byte

根据原始key获取data

func GetByHash

func GetByHash(id *utils.Multihash) []byte

根据原始hash id获取data

func Hash

func Hash(key []byte) *utils.Multihash

func Init

func Init()

func Register

func Register()

func Save

func Save(cd *CacheData)

保存cachedata

func SyncCacheDataToQuarterLogicIds

func SyncCacheDataToQuarterLogicIds(cachedata *CacheData) error

同步数据(主要删除用)

func SyncDataToQuarterLogicIds

func SyncDataToQuarterLogicIds(khash *utils.Multihash) error

同步数据

func TimingSynchronization

func TimingSynchronization(hash []byte)

定时同步数据

func UpTime

func UpTime()

Types

type Cache

type Cache struct {
	Data *sync.Map //存储共享数据(key/value:hash/cachedata)
	Time time.Time //更新时间
}

存储结构

var (
	Caches *Cache
)

func NewCache

func NewCache() *Cache

func (*Cache) Del

func (c *Cache) Del(key []byte)

根据KEY删除数据

func (*Cache) Get

func (c *Cache) Get(key []byte) []byte

根据KEY获取原始数据DATA

func (*Cache) GetByHash

func (c *Cache) GetByHash(id *utils.Multihash) []byte

根据hash id 获取原始数据DATA

func (*Cache) GetCacheData

func (c *Cache) GetCacheData(key []byte) *CacheData

根据原始key获取cachedata

func (*Cache) GetCacheDataByHash

func (c *Cache) GetCacheDataByHash(id *utils.Multihash) *CacheData

根据hash id 获取cachedata

func (*Cache) Save

func (c *Cache) Save(d *CacheData)

格式化保存key,value uptime true 则更新时间

func (*Cache) UpTime

func (c *Cache) UpTime()

type CacheData

type CacheData struct {
	Kbyte []byte             //原始KEY
	Key   *utils.Multihash   //数据key hash
	Value []byte             //数据内容
	Ownid []*utils.Multihash //所属用户ID
	Time  time.Time          //更新时间,用于清理过期数据
	Del   bool               //删除用
}

数据结构

func BuildCacheData

func BuildCacheData(key, value []byte) *CacheData

根据key/value生成cachedata

func GetCacheData

func GetCacheData(key []byte) *CacheData

根据key获取cachedata

func GetCacheDataByHash

func GetCacheDataByHash(id *utils.Multihash) *CacheData

根据hash id 获取cachedata

func Parse

func Parse(data []byte) (*CacheData, error)

解析字节为cachedata

func (*CacheData) AddOwnId

func (cd *CacheData) AddOwnId(id *utils.Multihash) error

增加节点为共享用户

func (*CacheData) Json

func (cd *CacheData) Json() []byte

func (*CacheData) SetTime

func (cd *CacheData) SetTime() error

Jump to

Keyboard shortcuts

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