func main() { cache, _ := lrcache.NewLRCache(*redisHost, *redisConnPoolSize, *redisPrefix, *lruSize) bob := &Person{Name: "Bob", Age: 21} sally := &Person{Name: "Alice", Age: 19} cache.Set("bob-key", bob) // pushes bob-key to LRU cache.Set("alice-key", sally) // pushes bob-key out of LRU and into Redis, puts alice-key in LRU res1 := cache.Get("bob-key") res2 := cache.Get("alice-key") log.Println(ExtractCustomType(res1)) // from redis log.Println(ExtractCustomType(res2)) // from LRU }
func main() { cache, _ := lrcache.NewLRCache(*redisHost, *redisConnPoolSize, *redisPrefix, *lruSize) // set 10 elements in the cache. since the LRU size is set to 5, // we expect 5 elements in the lru, 5 evictions from lru, and 5 elements in redis for i := 0; i < 10; i++ { key := strconv.Itoa(i) value := i fmt.Printf("setting key %s with value %d. evicted stuff from cache? %v\n", key, value, cache.Set(key, value)) } for i := 0; i < 10; i++ { result := cache.Get(strconv.Itoa(i)) val, err := result.IntVal() if err == nil { if result.FromRedis() { fmt.Printf("value came from redis: %d\n", val) } else { fmt.Printf("value came from LRU: %d\n", val) } } else { fmt.Println(err.Error()) } } }