Skip to content
forked from maemual/go-cache

An in-memory K/V and LRU cache library.

Notifications You must be signed in to change notification settings

saminou/go-cache

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-cache

GoDoc

An in-memory K/V cache and LRU cache library. Just for fun!

This package provide a simple memory key-value cache and LRU cache. It based on the k/v cache implementation in go-cache and LRU cache implementation in groupcache.

Documentation

API Reference

Installation

Install go-cache using the "go get" command:

go get github.com/maemual/go-cache

Example

Key-value cache:

package main

import (
    "fmt"

    "github.com/maemual/go-cache"
)

func main() {
    c := cache.New(0, 0)
    c.Set("1", 1111, 0)
    val, found := c.Get("1")
    if found {
        fmt.Println(val)
    }
    c.Increment("1", 1)
    val, found = c.Get("1")
    if found {
        fmt.Println(val)
    }
}

LRU Cache:

package main

import (
    "fmt"

    "github.com/maemual/go-cache"
)

func main() {
    lru, err := cache.NewLRU(3)
    if err != nil {
        fmt.Println(err)
    }
    lru.Add("1", 1111)
    lru.Add("2", 2222)
    lru.Add("3", 3333)
    lru.Add("4", 4444)
    _, hit := lru.Get("1")
    if hit {
        fmt.Println("Hit key 1")
    } else {
        fmt.Println("Not hit key 1")
    }

}

About

An in-memory K/V and LRU cache library.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%