Go实现简单的缓存过期功能

Go实现简单的数据缓存过期功能(类似Redis Expire)

package main

import (
	"fmt"
	"sync"
	"time"
)

// kV 存放数据的并发安全的map
var kV sync.Map

// Set 缓存过期功能实现 类Redis
func Set(key interface{}, value interface{}, exp time.Duration)  {

	kV.Store(key, value)
	time.AfterFunc(exp, func() {
		kV.Delete(key)
	})
}

func main() {
	
	// 设置id键值对 过期时间为5s
	Set("id", "1u2d3g", time.Second*5)
	// 过4s后查看数据存在
	time.Sleep(time.Second*4)
	fmt.Println(kV.Load("id"))
	// 过6s后查看数据已经不在了
	time.Sleep(time.Second*6)
	fmt.Println( kV.Load("id"))

}

posted @ 2022-02-28 13:56  听风走了八千里  阅读(1112)  评论(0编辑  收藏  举报