Popularity
2.6
Growing
Activity
0.0
Declining
38
4
4

Programming language: Go
License: MIT License
Tags: Data Structures    

2q alternatives and similar packages

Based on the "Data Structures" category.
Alternatively, view 2q alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of 2q or a related project?

Add another 'Data Structures' Package

README

2q

Go Reference CI Coverage Go Report Card

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