SkillAgentSearch skills...

Nscache

A Go caching framework that supports multiple data source drivers

Install / Use

/learn @no-src/Nscache
About this skill

Quality Score

0/100

Supported Platforms

Universal

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

| Driver | Import Driver Package | Connection String Example | |---------------|-------------------------------------------|--------------------------------------------------------------------------| | Memory | github.com/no-src/nscache/memory | memory: | | Redis | github.com/no-src/nscache/redis | redis://127.0.0.1:6379 | | Redis Cluster | github.com/no-src/nscache/redis_cluster | redis-cluster://127.0.0.1:7001?addr=127.0.0.1:7002&addr=127.0.0.1:7003 | | BuntDB | github.com/no-src/nscache/buntdb | buntdb://:memory: or buntdb://buntdb.db | | Etcd | github.com/no-src/nscache/etcd | etcd://127.0.0.1:2379?dial_timeout=5s | | BoltDB | github.com/no-src/nscache/boltdb | boltdb://boltdb.db | | FreeCache | github.com/no-src/nscache/freecache | freecache://?cache_size=50mib | | BigCache | github.com/no-src/nscache/bigcache | bigcache://?eviction=10m | | FastCache | github.com/no-src/nscache/fastcache | fastcache://?max_bytes=50mib | | Memcached | github.com/no-src/nscache/memcached | memcached://127.0.0.1:11211 | | Proxy | github.com/no-src/nscache/proxy/client | proxy://127.0.0.1:8080 |

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
	}
}

Command Line Tool

You can use the command line tool to operate all the cache drivers that nscache supports.

Install the command line tool nscache-cli.

go install github.com/no-src/nscache/cmd/nscache-cli@latest

Run the cli tool with specified cache driver connection string to operate cache.

nscache-cli memory:

Proxy

Proxy Server

Install the proxy server nscache-server.

go install github.com/no-src/nscache/cmd/nscache-server@latest

Run the proxy server with specified listen address and cache driver connection string.

nscache-server -addr=:8080 -conn=memory:

Proxy Client

You can use the code to operate cache proxy server like the example code in the Quick Start section.

Or use the nscache-cli to connect to the proxy server and operate cache.

nscache-cli proxy://127.0.0.1:8080

Related Skills

View on GitHub
GitHub Stars14
CategoryCustomer
Updated25d ago
Forks0

Languages

Go

Security Score

95/100

Audited on Mar 5, 2026

No findings