Abp分布式实体缓存
直接缓存实体对象
- 注册实体缓存:
.context.Services.AddEntityCache<Product, Guid>()
- 注入和使用
.IEntityCache<Product, Guid>
服务
使用此用法,实体类应可序列化/可序列化为 JSON/可从 JSON 反序列化。
实体映射到缓存项
- 定义缓存类,例如:
ProductCacheItem
- 对象映射配置:
Product
->ProductCacheItem
- 注册实体缓存:
.context.Services.AddEntityCache<Product, ProductCacheItem, Guid>()
- 注入和使用
.IEntityCache<ProductCacheItem, Guid>
服务
使用上下文化对象映射器
只有使用最佳实践指南构建的可重用模块才需要这样做。应用程序开发人员不需要它。
- 定义缓存类,例如:
ProductCacheItem
- 对象映射配置:
Product
->ProductCacheItem
- 注册实体缓存:
.*context.Services.AddEntityCache<TMyModule, Product, ProductCacheItem, Guid>()
- 注入和使用
.IEntityCache<ProductCacheItem, Guid>
服务
*TMyModule 是我们定义对象映射器上下文的模块类的类型。
其他说明
- 所有
context.Services.AddEntityCache()
方法都获得一个可选的DistributedCacheEntryOptions
,在这里您可以轻松地配置选项。默认值为:
new DistributedCacheEntryOptions {
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(2)
}
- 实体缓存专为只读而设计。使用实体缓存时,我们不应对同一实体进行更改。如果我们需要更改实体,我们应该从数据库中读取它,以确保事务一致性。