数据缓存
Datory 框架默认包含缓存机制,对于需要频繁获取的数据,我们通过 Query 对象的 CachingGet 从缓存获取数据(当缓存不存在时,系统将从数据库获取并将数据添加至缓存),通过 Query 对象的 CachingRemove 方法清除缓存。
获取缓存
var cacheKey = "XYCMS.Core.Repositories.User." + userName;
var dataModel = await GetAsync(Q
.Where("UserName", userName)
.CachingGet(cacheKey)
);
1
2
3
4
5
2
3
4
5
以上代码首先定义了缓存键 cacheKey 的值,我们需要保证 cacheKey 值的唯一性,系统将首先通过缓存键从内存或者Redis中获取数据,如果没有对应的数据,系统将从数据库中获取数据并将获取到的数据缓存起来。
清除缓存
通常更新数据后需要清除缓存,这时候我们需要使用 CachingRemove 方法:
var cacheKey = "XYCMS.Core.Repositories.User." + userName;
await _repository.UpdateAsync(Q
.Set("Title", "新标题")
.Set("Count", 100)
.Where("UserName", userName)
.CachingRemove(cacheKey)
);
1
2
3
4
5
6
7
2
3
4
5
6
7
以上代码将更新数据值,同时清除缓存。
Redis 缓存
Datory 框架默认使用内存作为缓存系统,如果希望使用Redis作为缓存系统,需要在构建 Repository 数据仓库对象时传递 Redis 连接信息:
var repository = new Repository<DataModel>(settingsManager.Database, settingsManager.Redis);
1
Repository 构造函数中第一个参数为数据库连接信息,第二个参数为Redis连接信息。