cache

package module
v0.0.0-...-775ccde Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2019 License: MIT Imports: 2 Imported by: 0

README

A simple thread-safe internal k-v store with the ability to expire a key.

GoDoc

EXAMPLES

c := New()
// set cache with a ttl
c.Set("k", 1, 10)
		                     
// set cache with no ttl
c.Set("k1", "v1")

SYNOPSIS

package cache
    import "github.com/dotSlashLu/cache"

    A simple internal k-v store with the ability to expire a key

TYPES

type Cache struct {
    // contains filtered or unexported fields
}

func New() (c *Cache)
    Create a new DB

func (c *Cache) Close()
    Unset DB After this call, all methods will be invalid

func (c *Cache) Del(k string)
    Delete k from db

func (c *Cache) Exists(k string) bool
    Test if k exists in db

func (c *Cache) Flush()
    Flush all keys 
    
        * design considerations:

        best effort is made to reduce the gc cycle by manually close all the keys
        that are going to be deleted or replaced but doing a loop or making a
        storage for stopping all the timers are not worth the gain so they are
        spared when flushing

func (c *Cache) Get(k string) interface{}
    Get value from k return nil if the key is not set

func (c *Cache) Keys() (keys []string)
    Return all keys *unsorted*

func (c *Cache) Set(k string, v interface{}, ttl ...int64)
    Set k with v with an optional ttl in seconds

Documentation

Overview

A simple internal k-v store with the ability to expire a key

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

func New

func New() (c *Cache)

Create a new DB

func (*Cache) Close

func (c *Cache) Close()

Unset DB After this call, all methods will be invalid

func (*Cache) Del

func (c *Cache) Del(k string)

Delete k from db

func (*Cache) Exists

func (c *Cache) Exists(k string) bool

Test if k exists in db

func (*Cache) Flush

func (c *Cache) Flush()

Flush all keys

  • design considerations: best effort is made to reduce the gc cycle by manually close all the keys that are going to be deleted or replaced but doing a loop or making a storage for stopping all the timers are not worth the gain so they are spared when flushing

func (*Cache) Get

func (c *Cache) Get(k string) interface{}

Get value from k return nil if the key is not set

func (*Cache) Keys

func (c *Cache) Keys() (keys []string)

Return all keys *unsorted*

func (*Cache) Set

func (c *Cache) Set(k string, v interface{}, ttl ...int64)

Set k with v with an optional ttl in seconds

Example
k := "a"
v := "b"
ttl := int64(10)
c := New()
// set cache with a ttl
c.Set(k, v, ttl)

// set cache without a ttl
c.Set("k1", "v1")

Jump to

Keyboard shortcuts

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