return s
}
-// 设置Key Value Exp(有效秒数)
+// 设置Key Value Exp(有效秒数,<0永久)
func (s *tmplKV) Set(key,value interface{},exp int64) {
+ if exp >= 0 {exp = s.now+exp}
s.kvt_map.Store(key, tmplKV_item{
kv: value,
- kt: s.now+exp,
+ kt: exp,
})
}
item,_ := tmp.(tmplKV_item)
value = item.kv
- isLive = ok && s.now <= item.kt
+ isLive = ok && item.kt < 0 || s.now <= item.kt
if !isLive && ok {
s.kvt_map.Delete(key)
}
s := New_tmplKV()
s.Set("a",`a`,1)
if !s.Check("a",`a`) {t.Error(`no match1`)}
- s.Set("a",`b`,1)
+ s.Set("a",`b`,-1)
if !s.Check("a",`b`) {t.Error(`no match2`)}
time.Sleep(time.Second*time.Duration(1))
- if s.Check("a",`b`) {t.Error(`no TO1`)}
+ if !s.Check("a",`b`) {t.Error(`no TO1`)}
}