Skip to content

工程应用实例 #146

@hunterhug

Description

@hunterhug

https://github.com/hunterhug/gocache/blob/master/README_ZH.md

该库使用了红黑树和最小堆数据结构。利用最小堆堆顶是最老的值,从而快速清洗过期值。可以认为是一个有过期时间的 K-V 本地内存数据库。

原理很简单:

一个 treeMap 用来保存 K-V,一个最小堆的完全树用来清洗过期 key。
官方的 map 不会缩容,treemap 的话不会占用多余空间。
开了个定时器惰性删除过期key,由于定时器每秒最多清除30个过期,可能不够实时,所以当客户端主动拿值时会进行实时删除key,参考的redis。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions