问题描述
var cache = client.GetorCreateCache<int,int>("test").WithExpiryPolicy(new ExpiryPolicy(TimeSpan.FromSeconds(5),null,null));
using (var ldr = client.GetDataStreamer<int,int>("test"))
{
for (int i = 0; i < 20; i++)
ldr.AddData(i,i);
ldr.Flush();
}
我设置了WithExpiryPolicy,但是GetDataStreamer添加的数据没有过期。请告诉我如何设置数据过期。
解决方法
WithExpiryPolicy
不会修改基础缓存本身。而是返回具有指定策略的新实例。这使您可以根据某些业务逻辑在同一缓存上配置不同的策略。
同时,DataStreamer会在创建缓存时寻找它,而不关心WithExpiryPolicy
。我建议您显式配置缓存,并使用以下配置重新运行示例:
var cacheConfiguration = new CacheConfiguration
{
Name = name,ExpiryPolicyFactory = new ExpiryPolicyFactory(
new ExpiryPolicy(TimeSpan.FromSeconds(1),null,null))
};