diff options
author | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-04-08 16:15:27 +0530 |
---|---|---|
committer | Marc Pervaz Boocha <marcpervaz@qburst.com> | 2025-04-08 16:15:27 +0530 |
commit | ebb2dc540858155152b21549afd77e65118e1474 (patch) | |
tree | 74aa4929bb8dfd9a1823baa0b56cecadd99e91b4 /examples/eviction_policy/main.go | |
parent | Added documentation and tests (diff) | |
download | cache-ebb2dc540858155152b21549afd77e65118e1474.tar cache-ebb2dc540858155152b21549afd77e65118e1474.tar.gz cache-ebb2dc540858155152b21549afd77e65118e1474.tar.bz2 cache-ebb2dc540858155152b21549afd77e65118e1474.tar.lz cache-ebb2dc540858155152b21549afd77e65118e1474.tar.xz cache-ebb2dc540858155152b21549afd77e65118e1474.tar.zst cache-ebb2dc540858155152b21549afd77e65118e1474.zip |
Lint and bug fixes
Diffstat (limited to 'examples/eviction_policy/main.go')
-rw-r--r-- | examples/eviction_policy/main.go | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/examples/eviction_policy/main.go b/examples/eviction_policy/main.go index 5b5599a..fa56b8f 100644 --- a/examples/eviction_policy/main.go +++ b/examples/eviction_policy/main.go @@ -2,30 +2,65 @@ package main import ( "fmt" + "os" + "time" "github.com/marcthe12/cache" ) func main() { // Create an in-memory cache with LRU eviction policy - db, err := cache.OpenMem[string, string](cache.WithPolicy(cache.PolicyLRU)) + db, err := cache.OpenMem[string, string]( + cache.WithPolicy(cache.PolicyLRU), + cache.WithMaxCost(30), + cache.SetCleanupTime(1*time.Second), + ) if err != nil { fmt.Println("Error:", err) - return + os.Exit(1) } - defer db.Close() + + defer func() { + err := db.Close() + if err != nil { + fmt.Println("Error:", err) + } + }() // Set values - db.Set("key1", "value1", 0) - db.Set("key2", "value2", 0) - db.Set("key3", "value3", 0) + if err := db.Set("key1", "value1", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if err := db.Set("key2", "value2", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if err := db.Set("key3", "value3", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } // Access some keys - db.GetValue("key1") - db.GetValue("key2") + if _, _, err := db.GetValue("key1"); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + if _, _, err := db.GetValue("key2"); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } // Add another key to trigger eviction - db.Set("key4", "value4", 0) + if err := db.Set("key4", "value4", 0); err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + + time.Sleep(2 * time.Second) // Check which keys are present for _, key := range []string{"key1", "key2", "key3", "key4"} { |