Skip to content

glidea/gcache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一个分布式缓存框架(仿照 groupcache 实现,当然现在看起来已经没什么关系了)

主要特点

  • 代码小巧,适合作为学习向的项目
  • 易拓展。注册中心、缓存淘汰策略、RPC 协议、数据分片策略均可轻易替换实现

快速开始

var (
    dbHeight = map[string]string{
        "laowang":  "173", 
        "xiaoming": "166",
    }
    dbScore = map[string]string{
        "laowang":  "96", 
        "xiaoming": "97",
    }
)

func main() {
    c := gcache.New()
    c.Group("height", 1<<10, gcache.EvictionLru, time.Minute, gcache.ShardingConsistenthash,
        gcache.DBGetterFunc(func(key string) ([]byte, error) {
            return []byte(dbHeight[key]), nil
        }))
    c.Group("score", 1<<10, gcache.EvictionLru, time.Minute, gcache.ShardingConsistenthash, 
        gcache.DBGetterFunc(func(key string) ([]byte, error) {
            return []byte(dbScore[key]), nil
        }))
    c.Registry(gcache.RegistryZK, "xxxxxxxxx")
    c.Protocol(gcache.ProtocolHTTP)
    err := c.Start(":6060")
    if err != nil {
        log.Fatal("server start fail: " + err.Error())
    }
}

About

mini distributed cache

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages