rjbasitali / go-cache

Simple key/value cache for Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-cache

Simple thread safe key/value cache for Go.

Usage

You can initialize the cache using:

    cache = gocache.NewCache()

And perform the operations using:

   // GET a value using key, which returns (value, error)
   cache.Get(key)
   
   // SET a value using key
   cache.Set(key, value)
   
   // REMOVE a key/value pair using key
   cache.Remove(key)
   
   // And FLUSH, which removes all items from the cache
   cache.Flush()

Cache Expiration

You can also add an expiration to the cache, expired cache will be auto deleted by the sweeper.

To initialize a cache using sweeper we can use:

    cache := NewCacheWithSweeper(10 * time.Minute, 10 * time.Minute, decisionFunc, onEviction)

Here, first two parameters are interval and expireAfter, sweeper will run in the background after specified interval to check for expired cache to delete.

The decisionFunc and onEviction are optional functions with the following signature:

    decisionFunc func(v interface{}) bool
    
    onEviction func(k string, v interface{})

We can use decisionFunc as a callback, it will be called by the cache before deleting a key/value, it takes in the value to delete and returns true to delete and false for not deleting a key/value pair even after expired.

The onEviction is a callback which will be called every time a cache is deleted with its key/value as parameters.

About

Simple key/value cache for Go

License:MIT License


Languages

Language:Go 100.0%