Commit 8aed4c13 authored by JessonChan's avatar JessonChan

isExist func will check if the value is expired

parent 6465dbd7
...@@ -82,14 +82,14 @@ func (bc *MemoryCache) GetMulti(names []string) []interface{} { ...@@ -82,14 +82,14 @@ func (bc *MemoryCache) GetMulti(names []string) []interface{} {
} }
// Put cache to memory. // Put cache to memory.
// if expired is 0, it will be cleaned by next gc operation ( default gc clock is 1 minute). // if lifespan is 0, it will be forever till restart.
func (bc *MemoryCache) Put(name string, value interface{}, expired int64) error { func (bc *MemoryCache) Put(name string, value interface{}, lifespan int64) error {
bc.Lock() bc.Lock()
defer bc.Unlock() defer bc.Unlock()
bc.items[name] = &MemoryItem{ bc.items[name] = &MemoryItem{
val: value, val: value,
cratedTime: time.Now(), cratedTime: time.Now(),
lifespan: expired, lifespan: lifespan,
} }
return nil return nil
} }
...@@ -179,8 +179,10 @@ func (bc *MemoryCache) Decr(key string) error { ...@@ -179,8 +179,10 @@ func (bc *MemoryCache) Decr(key string) error {
func (bc *MemoryCache) IsExist(name string) bool { func (bc *MemoryCache) IsExist(name string) bool {
bc.RLock() bc.RLock()
defer bc.RUnlock() defer bc.RUnlock()
_, ok := bc.items[name] if v, ok := bc.items[name]; ok {
return ok return !v.isExpire()
}
return false
} }
// ClearAll will delete all cache in memory. // ClearAll will delete all cache in memory.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment