GitHub - floatdrop/2q (original) (raw)
2q
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