gocache

package module
v0.0.0-...-40ecc92 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2024 License: MIT Imports: 5 Imported by: 0

README

gocache Go Report Card Gitter GoDoc

gocache is simple ultra fast lock-free cache library written in golang.

Requirement

Go (>= 1.9)

Installation

go get github.com/hlts2/gocache

Example

Basic Example

Set is Set(key string, value interface{}), so you can set any type of object.


var (
  key1 = "key_1"
  key2 = "key_2"
  key3 = "key_3"

  value1  = "value_1"
  value2  = 1234
  value3  = struct{}{}
)

cache := gocache.New()

// default expire is 50 Seconds
ok := cache.Set(key1, value1) // true
ok := cache.Set(key2, value2) // true
ok := cache.Set(key3, value3) // true

// get cached data
v, ok := cache.Get(key1)

v, ok := cache.Get(key2)

v, ok := cache.Get(key3)

Benchmarks

gocache vs go-cache vs gache vs gcache

The version of golang is go1.10.3 linux/amd64 Bench

Author

hlts2

LICENSE

gocache released under MIT license, refer LICENSE file.

Documentation

Index

Constants

View Source
const (
	// DefaultExpire is default expiration date.
	DefaultExpire = int64(50 * time.Second)

	// DeleteExpiredInterval is the default interval at which the worker deltes all expired cache objects
	DeleteExpiredInterval = int64(10 * time.Second)

	// DefaultShardsCount is the number of elements of concurrent map.
	DefaultShardsCount uint64 = 256
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Gocache

type Gocache interface {

	// Get returns object with the given name from the cache.
	Get(string) (interface{}, bool)

	// Set sets object in the cache.
	Set(string, interface{}) bool

	// SetWithExpire sets object in cache with an expiration date.
	SetWithExpire(string, interface{}, time.Duration) bool

	// Delete deletes cache object of given name.
	Delete(string)

	// Clear clears cache.
	Clear()

	// StartExpired starts worker that deletes an expired cache object.
	// Deletion processing is executed at intervals of given time.
	StartExpired(dur time.Duration) Gocache

	// StopExpired stop worker that deletes an expired cache object.
	StopExpired() Gocache
}

Gocache is base gocache interface.

func New

func New(options ...Option) Gocache

New returns Gocache (*gocache) instance.

type Option

type Option func(g *gocache)

Option configures gocache.

func WithExpireAt

func WithExpireAt(d time.Duration) Option

WithExpireAt returns an Option that set the expire

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL