1. 在Program.cs 启用 builder.Services.AddMemoryCache()
2. 注入IMemoryCache接口 ,推荐使用GetOrCreate方法,key值要采用不冲突合理避免数据混乱,GetOrCreate会把NULL当成合法的缓存值,而Get Set方式不会当成合法的缓存值,可以避免”缓存穿透“,”缓存穿透“:把查询不到的数据往数据库不断发送查询
以上方式实现缓存数据,但是缓存时间不会过期则会出现,缓存数据不一致的情况。例如:在项目查询数据后缓存到其中,突然另外的操作将其数据经行Update操作这时因缓存时间不会过期,则出现缓存数据不一致的情况。
解决方法:1.在数据改变的时候条用Remove或者Set来删除或者修改缓存(这是比较及时的)
2.对缓存设置过期时间,过期时间比较短,缓存数据不一致的情况也不会持续很长时间
采用方式2进行改造,利用随机数设置过期时间,有助于避免缓存雪崩