Documentation
¶
Index ¶
- Constants
- type Cache
- func (p *Cache[K, V]) All() iter.Seq2[K, V]
- func (p *Cache[K, V]) Close()
- func (p *Cache[K, V]) Delete(key K)
- func (p *Cache[K, V]) DeleteExpired()
- func (p *Cache[K, V]) Get(key K) (V, bool)
- func (p *Cache[K, V]) GetNoExtension(key K) (V, bool)
- func (p *Cache[K, V]) Has(key K) bool
- func (p *Cache[K, V]) Iterate(yield func(K, V) error) error
- func (p *Cache[K, V]) Keys() iter.Seq[K]
- func (p *Cache[K, V]) Len() int
- func (p *Cache[K, V]) Set(key K, value V)
- func (p *Cache[K, V]) SetDuration(key K, value V, expiration time.Duration)
- func (p *Cache[K, V]) Values() iter.Seq[V]
Examples ¶
Constants ¶
View Source
const ( // DefaultExpiration 默认过期时间. DefaultExpiration time.Duration = 0 // NoExpiration 不过期. NoExpiration time.Duration = -1 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache[K comparable, V any] struct { // contains filtered or unexported fields }
Cache 缓存.
func New ¶
func New[K comparable, V any](defaultExpiration, interval time.Duration) *Cache[K, V]
New 新建缓存, 设置默认过期时间和过期检查周期.
Example ¶
ExampleNew is an example function.
package main
import (
"fmt"
"time"
"github.com/xuender/kit/cache"
)
func main() {
cac := cache.New[int, int](time.Millisecond, time.Millisecond)
defer cac.Close()
cac.SetDuration(1, 1, time.Millisecond*4)
cac.Set(2, 1)
fmt.Println(cac.GetNoExtension(1))
fmt.Println(cac.GetNoExtension(3))
fmt.Println(cac.Get(3))
fmt.Println(cac.Len())
time.Sleep(time.Millisecond * 2)
fmt.Println(cac.Len())
cac.Delete(1)
fmt.Println(cac.Len())
}
Output: 1 true 0 false 0 false 2 1 0
func NewStringKey ¶
NewStringKey 新建字符串键值的缓存.
Example ¶
ExampleNewStringKey is an example function.
package main
import (
"fmt"
"time"
"github.com/xuender/kit/cache"
)
func main() {
cac := cache.NewStringKey[int](time.Millisecond, time.Millisecond)
defer cac.Close()
cac.SetDuration("key1", 1, time.Millisecond*4)
cac.Set("key2", 1)
fmt.Println(cac.Get("key2"))
fmt.Println(cac.Len())
time.Sleep(time.Millisecond * 2)
fmt.Println(cac.Len())
}
Output: 1 true 2 1
func (*Cache[K, V]) All ¶ added in v1.0.54
All 返回一个迭代器,用于遍历缓存中所有未过期的键值对。 该方法线程安全,但在遍历过程中,其他协程的写操作可能会导致迭代过程中数据发生变化。
func (*Cache[K, V]) DeleteExpired ¶
func (p *Cache[K, V]) DeleteExpired()
func (*Cache[K, V]) GetNoExtension ¶ added in v1.0.18
GetNoExtension 读元素不延期.
func (*Cache[K, V]) SetDuration ¶
SetDuration 设置元素及过期时间.
Click to show internal directories.
Click to hide internal directories.