ego008 avatar

Go中四个替换策略FIFO,LRU,CLOCK和LFU的实现

🕥 by ego008

当缓存满时应退出哪个缓存项?这个问题取决于项目需求,cache-replacement-policies 这个库用 Golang 实现四个替换策略FIFO,LRU,CLOCK和LFU。

使用很简单

Go: cache
1
2
3
mc := cache.NewCache(5, cache.LRU)
mc.Put("k", "value")
mc.Get("k", "value")

集成简化操作

项目 https://github.com/brunocalza/cache-replacement-policies

💘 相关文章

评论

共6条关于"Go中四个替换策略FIFO,LRU,CLOCK和LFU的实现"的评论

waiducom avatar
#1 waiducom 回复

@ego008 新版的程序兼容旧版的数据吗?真的迫切需要使用新版本,特别是github登录,

youbbs avatar
#2 youbbs 回复

@waiducom #1 数据库不一样,数据结构一样,需要转一下,有时间我做一个转换

waiducom avatar
#3 waiducom 回复

@youbbs #2 好的谢谢

另外我想在所有外链地址加上src=domain.com

代码下面这样改对吗?

Go:
1
2
3
4
5
6
7
8
9
10
11
codeRegexp    = regexp.MustCompile("(?s:```(.+?)```)")
imgRegexp     = regexp.MustCompile(`(https?://[-\w./:]+/[\w./]+\.(jpg|jpe|jpeg|gif|png))`)
gistRegexp    = regexp.MustCompile(`(https?://gist\.github\.com/([a-zA-Z0-9-]+/)?[\d]+)`)
mentionRegexp = regexp.MustCompile(`(?:\s|^)@([a-zA-Z0-9\p{Han}]{1,32})\s?`)
urlRegexp     = regexp.MustCompile(`([^;"='>])(https?://[^\s<]+[^\s<.)])`)src=domain.com
nlineRegexp   = regexp.MustCompile(`\s{2,}`)
youku1Regexp  = regexp.MustCompile(`https?://player\.youku\.com/player\.php/sid/([a-zA-Z0-9=]+)/v\.swf`)
youku2Regexp  = regexp.MustCompile(`https?://v\.youku\.com/v_show/id_([a-zA-Z0-9=]+)(/|\.html?)?`)

hrefRegexp = regexp.MustCompile(`href="[^"]+?"`)
aTagRegexp = rege

写一条评论

Based on Golang + fastHTTP + sdb | go1.16.5 Processed in 2ms