Categorygithub.com/no-src/nscache
repositorypackage
0.1.2
Repository: https://github.com/no-src/nscache.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

nscache

Build License Go Reference Go Report Card codecov Release Mentioned in Awesome Go

Installation

go get -u github.com/no-src/nscache

Quick Start

First, you need to import the cache driver, then create your cache component instance with the specified connection string and use it.

Current support following cache drivers

DriverImport Driver PackageConnection String Example
Memorygithub.com/no-src/nscache/memorymemory:
Redisgithub.com/no-src/nscache/redisredis://127.0.0.1:6379
BuntDBgithub.com/no-src/nscache/buntdbbuntdb://:memory: or buntdb://buntdb.db
Etcdgithub.com/no-src/nscache/etcdetcd://127.0.0.1:2379?dial_timeout=5s
BoltDBgithub.com/no-src/nscache/boltdbboltdb://boltdb.db
FreeCachegithub.com/no-src/nscache/freecachefreecache://?cache_size=50mib
BigCachegithub.com/no-src/nscache/bigcachebigcache://?eviction=10m
FastCachegithub.com/no-src/nscache/fastcachefastcache://?max_bytes=50mib

For example, initial a memory cache and write, read and remove data.

package main

import (
	"time"

	_ "github.com/no-src/nscache/memory"

	"github.com/no-src/log"
	"github.com/no-src/nscache"
)

func main() {
	// initial cache driver
	c, err := nscache.NewCache("memory:")
	if err != nil {
		log.Error(err, "init cache error")
		return
	}
	defer c.Close()

	// write data
	k := "hello"
	c.Set(k, "world", time.Minute)

	// read data
	var v string
	if err = c.Get(k, &v); err != nil {
		log.Error(err, "get cache error")
		return
	}
	log.Info("key=%s value=%s", k, v)

	// remove data
	if err = c.Remove(k); err != nil {
		log.Error(err, "remove cache error")
		return
	}
}