Install memcache
go get -u -v github.com/ohmountain/memcache
Use memcache
package main import "time" import "github.com/ohmountain/memcache" func main() { // Use memcache without ttl cache := memcache.WithLRU(10000, false); cache.Set("Hello", "World"); cache.Get("Hello") // "World" cache.Get("world") // nil // Use memcache with ttl cache = memcache.WithLRU(10000, true) cache.SetExpire("Some", "Thing", 10) // 10 seconds to live cache.Get("Some") // "Thing" time.Sleep(11 * time.Second) cache.Get("Some") // nil // Or delete cache.Set("Haha", "Huhu") cache.Delete("Haha") }
Difference between TTL and Non-TTL
If ttl is not used, it is just an LRU memory cache; if ttl is used, then it adds a mechanism of expiration by time on the basis of LRU, which means that even if the LRU mechanism does not take effect, the buffer will automatically clean up expired k/v.