GitHub - floatdrop/2q (original) (raw)

2q

Go Reference CI Coverage Go Report Card Mentioned in Awesome Go

Thread safe GoLang 2Q cache.

Example

import ( "fmt"

twoqueue "github.com/floatdrop/2q"

)

func main() { cache := twoqueue.Newstring, int

cache.Set("Hello", 5)

if e := cache.Get("Hello"); e != nil {
    fmt.Println(*e)
    // Output: 5
}

}

TTL

See LRU TTL example.

Benchmarks

floatdrop/twoqueue:
    Benchmark2Q_Rand-8   	 4384994	       264.5 ns/op	      46 B/op	       3 allocs/op
    Benchmark2Q_Freq-8   	 4862632	       243.9 ns/op	      44 B/op	       3 allocs/op

hashicorp/golang-lru:
    Benchmark2Q_Rand-8    	 2847627	       411.9 ns/op	     135 B/op	       5 allocs/op
    Benchmark2Q_Freq-8    	 3323764	       354.2 ns/op	     122 B/op	       5 allocs/op