diff options
Diffstat (limited to 'examples/eviction_policy')
-rw-r--r-- | examples/eviction_policy/main.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/eviction_policy/main.go b/examples/eviction_policy/main.go new file mode 100644 index 0000000..a9c8577 --- /dev/null +++ b/examples/eviction_policy/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "fmt" + + "code.qburst.com/marcpervaz//cache" +) + +func main() { + // Create an in-memory cache with LRU eviction policy + db, err := cache.OpenMem[string, string]("example", cache.WithPolicy(cache.PolicyLRU)) + if err != nil { + fmt.Println("Error:", err) + return + } + defer db.Close() + + // Set values + db.Set("key1", "value1", 0) + db.Set("key2", "value2", 0) + db.Set("key3", "value3", 0) + + // Access some keys + db.GetValue("key1") + db.GetValue("key2") + + // Add another key to trigger eviction + db.Set("key4", "value4", 0) + + // Check which keys are present + for _, key := range []string{"key1", "key2", "key3", "key4"} { + value, _, err := db.GetValue(key) + if err != nil { + fmt.Printf("Key %s not found\n", key) + } else { + fmt.Printf("Key %s found with value: %s\n", key, value) + } + } +} |