Abp分布式实体缓存

直接缓存实体对象

  1. 注册实体缓存:.context.Services.AddEntityCache<Product, Guid>()
  2. 注入和使用.IEntityCache<Product, Guid>服务

使用此用法,实体类应可序列化/可序列化为 JSON/可从 JSON 反序列化。

实体映射到缓存项

  1. 定义缓存类,例如:ProductCacheItem
  2. 对象映射配置:Product->ProductCacheItem
  3. 注册实体缓存:.context.Services.AddEntityCache<Product, ProductCacheItem, Guid>()
  4. 注入和使用.IEntityCache<ProductCacheItem, Guid>服务

使用上下文化对象映射器

只有使用最佳实践指南构建的可重用模块才需要这样做。应用程序开发人员不需要它。

  1. 定义缓存类,例如:ProductCacheItem
  2. 对象映射配置:Product->ProductCacheItem
  3. 注册实体缓存:.*context.Services.AddEntityCache<TMyModule, Product, ProductCacheItem, Guid>()
  4. 注入和使用.IEntityCache<ProductCacheItem, Guid>服务
    *TMyModule 是我们定义对象映射器上下文的模块类的类型。

其他说明

  • 所有context.Services.AddEntityCache()方法都获得一个可选的DistributedCacheEntryOptions,在这里您可以轻松地配置选项。默认值为:
new DistributedCacheEntryOptions {
    AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(2)
}
  • 实体缓存专为只读而设计。使用实体缓存时,我们不应对同一实体进行更改。如果我们需要更改实体,我们应该从数据库中读取它,以确保事务一致性。
posted @ 2022-11-30 11:59  HUGO.CM  阅读(157)  评论(0编辑  收藏  举报