Util 应用框架基础(七)- API
API
Util 应用框架缓存操作 API
ICache
概述
Util.Caching.ICache 是缓存操作的主要接口.
根据缓存配置,ICache 可以在本地缓存,Redis 缓存,2 级缓存切换.
如果仅配置本地缓存, ICache 实例为本地缓存操作.
如果仅配置 Redis 缓存,ICache 实例为 Redis 缓存操作.
如果同时配置本地缓存和 Redis 缓存,ICache 实例为后配置的缓存操作.
如果配置了 2 级缓存,ICache 实例为 2 级缓存操作.
注意事项
如果使用 2 级缓存,有些操作不可用,调用会抛出异常.
示例上下文
通过依赖注入获取 ICache 实例.
用户资源示例
用户资源缓存键示例
用户资源仓储示例
API
Exists
功能: 判断缓存是否存在
bool Exists( CacheKey key )
范例:
bool Exists( string key )
范例:
ExistsAsync
功能: 判断缓存是否存在
Task<bool> ExistsAsync( CacheKey key, CancellationToken cancellationToken = default )
范例:
Task<bool> ExistsAsync( string key, CancellationToken cancellationToken = default )
范例:
bool exists = await _cache.ExistsAsync( "User-1:Resource-2" );
Get
功能: 从缓存中获取数据
T Get<T>( CacheKey key )
范例:
T Get<T>( string key )
范例:
List<T> Get<T>( IEnumerable<CacheKey> keys )
通过缓存键集合获取结果集合.
范例:
List<T> Get<T>( IEnumerable<string> keys )
通过缓存键集合获取结果集合.
范例:
T Get<T>( CacheKey key, Func<T> action, CacheOptions options = null )
从缓存中获取数据,如果数据不存在,则执行获取数据操作并添加到缓存中.
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
T Get<T>( string key, Func<T> action, CacheOptions options = null )
从缓存中获取数据,如果数据不存在,则执行获取数据操作并添加到缓存中.
范例:
GetAsync
功能: 从缓存中获取数据
Task<object> GetAsync( string key, Type type, CancellationToken cancellationToken = default )
无法传入泛型返回类型参数可使用该重载方法.
范例:
Task<T> GetAsync<T>( CacheKey key, CancellationToken cancellationToken = default )
范例:
Task<T> GetAsync<T>( string key, CancellationToken cancellationToken = default )
范例:
Task<List> GetAsync<T>( IEnumerable<CacheKey> keys, CancellationToken cancellationToken = default )
通过缓存键集合获取结果集合.
范例:
Task<List> GetAsync<T>( IEnumerable<string> keys, CancellationToken cancellationToken = default )
通过缓存键集合获取结果集合.
范例:
Task<T> GetAsync<T>( CacheKey key, Func<Task<T>> action, CacheOptions options = null, CancellationToken cancellationToken = default )
从缓存中获取数据,如果数据不存在,则执行获取数据操作并添加到缓存中.
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
Task<T> GetAsync<T>( string key, Func<Task<T>> action, CacheOptions options = null, CancellationToken cancellationToken = default )
从缓存中获取数据,如果数据不存在,则执行获取数据操作并添加到缓存中.
范例:
GetByPrefix
功能: 通过缓存键前缀获取数据
List<T> GetByPrefix<T>( string prefix )
范例:
GetByPrefixAsync
功能: 通过缓存键前缀获取数据
Task<List<T>> GetByPrefixAsync<T>( string prefix, CancellationToken cancellationToken = default )
范例:
TrySet
功能: 设置缓存,当缓存已存在则忽略,设置成功返回 true
bool TrySet<T>( CacheKey key, T value, CacheOptions options = null )
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
bool TrySet<T>( string key, T value, CacheOptions options = null )
范例:
TrySetAsync
功能: 设置缓存,当缓存已存在则忽略,设置成功返回 true
Task<bool> TrySetAsync<T>( CacheKey key, T value, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
Task<bool> TrySetAsync<T>( string key, T value, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
Set
功能: 设置缓存,当缓存已存在则覆盖
void Set<T>( CacheKey key, T value, CacheOptions options = null )
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
void Set<T>( string key, T value, CacheOptions options = null )
范例:
void Set<T>( IDictionary<CacheKey,T> items, CacheOptions options = null )
范例:
void Set<T>( IDictionary<string,T> items, CacheOptions options = null )
范例:
SetAsync
功能: 设置缓存,当缓存已存在则覆盖
Task SetAsync<T>( CacheKey key, T value, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
CacheOptions 配置包含 Expiration 属性,用于设置缓存过期时间间隔,默认值: 8 小时.
设置 1 小时过期,如下所示.
Task SetAsync<T>( string key, T value, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
Task SetAsync<T>( IDictionary<CacheKey, T> items, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
Task SetAsync<T>( IDictionary<string, T> items, CacheOptions options = null, CancellationToken cancellationToken = default )
范例:
Remove
功能: 移除缓存
void Remove( CacheKey key )
范例:
void Remove( string key )
范例:
void Remove( IEnumerable<CacheKey> keys )
范例:
void Remove( IEnumerable<string> keys )
范例:
RemoveAsync
功能: 移除缓存
Task RemoveAsync( CacheKey key, CancellationToken cancellationToken = default )
范例:
Task RemoveAsync( string key, CancellationToken cancellationToken = default )
范例:
Task RemoveAsync( IEnumerable<CacheKey> keys, CancellationToken cancellationToken = default )
范例:
Task RemoveAsync( IEnumerable<string> keys, CancellationToken cancellationToken = default )
范例:
RemoveByPrefix
功能: 通过缓存键前缀移除缓存
void RemoveByPrefix( string prefix )
范例:
Task RemoveByPrefixAsync( string prefix, CancellationToken cancellationToken = default )
范例:
RemoveByPattern
功能: 通过模式移除缓存
void RemoveByPattern( string pattern )
范例:
移除 User 开头的缓存.
RemoveByPatternAsync
功能: 通过模式移除缓存
Task RemoveByPatternAsync( string pattern, CancellationToken cancellationToken = default )
范例:
移除 User 开头的缓存.
Clear
功能: 清空缓存
void Clear()
范例:
ClearAsync
功能: 清空缓存
Task ClearAsync( CancellationToken cancellationToken = default )
范例:
ILocalCache
Util.Caching.ILocalCache 从 ICache 派生,表示本地缓存.
当同时配置本地缓存和 Redis 缓存, 如果你想明确使用本地缓存, 请使用 ILocalCache.
Api 参考 ICache.
IRedisCache
Util.Caching.IRedisCache 从 ICache 派生,表示 Redis 分布式缓存.
当同时配置本地缓存和 Redis 缓存, 如果你想明确使用 Redis 缓存, 请使用 IRedisCache.
IRedisCache 除了继承基础缓存操作外,还将添加 Redis 专用缓存操作.
目前 IRedisCache 尚未添加 Redis 专用操作,后续根据需要进行添加.
Api 参考 ICache.
CacheAttribute
[Cache] 是一个缓存拦截器,使用 ICache 接口操作缓存.
API
Prefix
功能: 设置缓存键前缀.
缓存键前缀支持占位符, {0} 代表第一个参数.
范例:
下面的示例调用 ITestService 的 Get 方法,传入参数 userId = "1" , resourceId = "2" .
创建的缓存键为: "User-1:1:2".
缓存键前缀 User-{0} 中的 {0} 替换为第一个参数 userId ,即 User-1.
使用 : 按顺序连接所有参数值.
Expiration
功能: 设置缓存过期间隔,单位: 秒,默认值: 36000
范例:
设置 120 秒过期.
LocalCacheAttribute
[LocalCache] 与 [Cache] 类似,但它使用 ILocalCache 接口操作缓存.
如果你的某个操作需要使用本地缓存,可以用 [LocalCache].
API 请参考 [Cache].
RedisCacheAttribute
[RedisCache] 与 [Cache] 类似,但它使用 IRedisCache 接口操作缓存.
如果你的某个操作需要使用 Redis 缓存,可以用 [RedisCache].
API 请参考 [Cache].
评论