Skip to content

rjbasitali/go-cache

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages