二级缓存功能

二级缓存功能是对查询出来的数据进行缓存,在缓存不失效的情况下,下次同样的查询操作都会从缓存内读取

使用缓存查询

var list=db.Queryable<Student, School>((s1, s2) => s1.Id == s2.Id).Select(s1 => s1).WithCache().ToList();//可以设置过期时间WithCache(60)

删除缓存

我们需要删除缓存也相当方便,只需要在对该表操作的时候加 RemoveDataCache 就能把查询中引用该表的缓存全部清除

db.Deleteable<Student>().Where(it => it.Id == 1).RemoveDataCache().ExecuteCommand();

二级缓存功能 - 图1

创建db对象:

我们需要创建一个MyCache类,你可以用我写好的也可以用你自已写的实现缓存

二级缓存功能 - 图2

我写好的Cache类

Redis:

https://github.com/sunkaixuan/SqlSugar/blob/dev/Src/Asp.Net/SqlSugar.Extensions.DataCache/RedisCache.cs

.Net自带Cache:

https://github.com/sunkaixuan/SqlSugar/blob/dev/Src/Asp.Net/SqlSugar.Extensions.DataCache/HttpRuntimeCache.cs

使用技巧

解决分页缓存的难题,我们知道用到分页的表数的数据量都很大不可能使用缓存,所以提供了一个WithCacheIF的来方便的针对指定条件缓存

WithCacheIF(pageIndex<2) //只对页码小于2的进行缓存