aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <marcpervaz@qburst.com>2025-04-08 16:15:27 +0530
committerMarc Pervaz Boocha <marcpervaz@qburst.com>2025-04-08 16:15:27 +0530
commitebb2dc540858155152b21549afd77e65118e1474 (patch)
tree74aa4929bb8dfd9a1823baa0b56cecadd99e91b4 /examples
parentAdded documentation and tests (diff)
downloadcache-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')
-rw-r--r--examples/basic_usage/main.go12
-rw-r--r--examples/eviction_policy/main.go53
2 files changed, 53 insertions, 12 deletions
diff --git a/examples/basic_usage/main.go b/examples/basic_usage/main.go
index 73e88ea..5b44cd9 100644
--- a/examples/basic_usage/main.go
+++ b/examples/basic_usage/main.go
@@ -14,11 +14,16 @@ func main() {
fmt.Println("Error:", err)
return
}
- defer db.Close()
+
+ defer func() {
+ err := db.Close()
+ if err != nil {
+ fmt.Println("Error:", err)
+ }
+ }()
// Set a value with a TTL of 5 seconds
- err = db.Set("key1", "value1", 5*time.Second)
- if err != nil {
+ if err = db.Set("key1", "value1", 5*time.Second); err != nil {
fmt.Println("Set Error:", err)
return
}
@@ -33,6 +38,7 @@ func main() {
// Wait for 6 seconds and try to get the value again
time.Sleep(6 * time.Second)
+
value, ttl, err = db.GetValue("key1")
if err != nil {
fmt.Println("Get Error after TTL:", err)
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"} {