缓存¶
ABP 框架扩展了 ASP.NET Core 的分布式缓存系统. ABP vNext Pro 已集成 Redis 做为缓存。
配置¶
AbpDistributedCacheOptions¶
示例:为应用程序设置缓存键前缀
AbpProHttpApiHostModule.cs | |
---|---|
可用选项¶
HideErrors
(bool
, 默认:true
): 启用/禁用隐藏从缓存服务器写入/读取值时的错误.KeyPrefix
(string
, 默认:null
): 如果你的缓存服务器由多个应用程序共同使用, 则可以为应用程序的缓存键设置一个前缀. 在这种情况下, 不同的应用程序不能覆盖彼此的缓存内容.GlobalCacheEntryOptions
(DistributedCacheEntryOptions
): 用于设置保存缓内容却没有指定选项时, 默认的分布式缓存选项 (例如AbsoluteExpiration
和SlidingExpiration
).SlidingExpiration
的默认值设置为 20 分钟.
使用方式¶
示例: 在缓存中存储图书名称和价格
C# | |
---|---|
你可以注入 IDistributedCache<BookCacheItem>
服务用于 get/set BookCacheItem
对象.
- 示例服务代码中的
GetOrAddAsync()
方法从缓存中获取图书项.GetOrAddAsync
是 ABP 框架在 ASP.NET Core 分布式缓存方法中添增的附加方法. - 如果没有在缓存中找到图书,它会调用工厂方法 (本示例中是
GetBookFromDatabaseAsync
)从原始数据源中获取图书项. GetOrAddAsync
有一个可选参数DistributedCacheEntryOptions
, 可用于设置缓存的生命周期.
批量操作¶
ABP 的分布式缓存接口定义了以下批量操作方法,当你需要在一个方法中调用多次缓存操作时,这些方法可以提高性能
SetManyAsync
和SetMany
方法可以用来向缓存中设置多个值.GetManyAsync
和GetMany
方法可以用来从缓存中获取多个值.GetOrAddManyAsync
和GetOrAddMany
方法可以用来从缓存中获取并添加缺少的值.RefreshManyAsync
和RefreshMany
方法可以来用重置多个值的滚动过期时间.RemoveManyAsync
和RemoveMany
方法可以用来从缓存中删除多个值.
这些不是标准的 ASP.NET Core 缓存方法, 所以某些提供程序可能不支持. [ABP Redis 集成包]实现了它们. 如果提供程序不支持,会回退到
SetAsync
和GetAsync
... 方法(循环调用).