Golang 设置缓存随机过期时间的小技巧

Golang 设置缓存随机过期时间的小技巧

写项目过程,设置缓存过期时间时候想添加随机数时间过期,用到一个小技巧,随手记录一下

代码如下:

func CacheTimeGenerator() time.Duration { 
	// 先设置随机数 - 这里比较重要
	rand.Seed(time.Now().Unix())
	// 再设置缓存时间
	// 10 + [0~20) 分钟的随机时间
	return time.Duration((10 + rand.Int63n(20)) * int64(time.Minute))
}

实际上就是先将分钟转换成int64类型,然后再与随机生成的int64数相乘,平时我们常用的

cacheTime := 10 * time.Minute

是将time.Duration类型的变量乘10倍,但是如果要使用随机数,就需要先转换成int64类型,实际上time.Duration就是int64,但是time还是封装了一下,所以要先转换。

    原文作者:EvaCcino
    原文地址: https://blog.csdn.net/yes169yes123/article/details/103324873
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞