进程内缓存助你提高并发能力!
前言 缓存,设计的初衷是为了减少繁重的IO操作,增加系统并发能力。不管是 CPU多级缓存,page cache,还是我们业务中熟悉的 redis 缓存,本质都是将有限的热点数据存储在一个存取更快的存储介质中。 计算机本身的缓存设计就是 CPU 采取多级缓存。那对我们服务来说,我们是不是也可以采用这种多级缓存的方式来组织我们的缓存数据。同时 redis 的存取都会经过网络IO,那我们能不能把热点数据直接存在本进程内,由进程自己缓存一份最近最热的这批数据呢? 这就引出了我们今天探讨的:local cache,本地缓存,也叫进程缓存。 本文带你一起探讨下 go-zero 中进程缓存的设计。Let’s go! 快速入门 作为一个进程存储设计,当然是 crud 都有的: 我们先初始化 local cache // 先初始化 local cache cache, err = collection.NewCache(time.Minute, collection.WithLimit(10)) if err != nil { log.Fatal(err) } 其中参数的含义: expire:key统一...