Skip to content

floatdrop/2q

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.New[string, int](256)

	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

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages