Azure 我应该如何创建一个;“应存储在Redis缓存中”;抽象?
这是来自 我想为应该(和不应该)存储在Redis缓存中的内容定义一个策略。缓存策略的一些抽象示例如下Azure 我应该如何创建一个;“应存储在Redis缓存中”;抽象?,azure,caching,architecture,redis,domain-driven-design,Azure,Caching,Architecture,Redis,Domain Driven Design,这是来自 我想为应该(和不应该)存储在Redis缓存中的内容定义一个策略。缓存策略的一些抽象示例如下 约会之后 在日期X和Y之间 门票人气 机器学习 我应该采取什么方法来清晰地定义一个可以在全球范围内实施并定期更新的政策 CloudContext.cs public async Task<List<Event>> GetLiveEvents(DateTime currentDate) { string year = currentDat
- 约会之后
- 在日期X和Y之间
- 门票人气
- 机器学习
public async Task<List<Event>> GetLiveEvents(DateTime currentDate)
{
string year = currentDate.Year.ToString();
var key = GenerateLiveEventsKey(year);
var yearEvents = await cache.GetFromCacheAsync<List<Event>>(key, async () =>
{
List<Event> events = new List<Event>();
string partitionKey = year;
TableQuery<EventRead> query = new TableQuery<EventRead>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey));
var result = tableEvents.ExecuteQuery(query);
foreach (EventRead nosqlEvent in result)
{
var eventObj = nosqlEvent.ToEvent(false);
events.Add(eventObj);
}
return events;
});
return yearEvents.Where(e => e.EventDate >= currentDate).ToList();
}
公共异步任务GetLiveEvents(日期时间currentDate)
{
字符串year=currentDate.year.ToString();
var键=GenerateLiveEventsKey(年);
var yearEvents=wait cache.GetFromCacheAsync(key,async()=>
{
列表事件=新列表();
字符串partitionKey=year;
TableQuery query=new TableQuery()。其中(TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.Equal,PartitionKey));
var result=tableEvents.ExecuteQuery(查询);
foreach(结果中的EventRead nosqlEvent)
{
var eventObj=nosqlEvent.ToEvent(false);
events.Add(eventObj);
}
返回事件;
});
返回yearEvents.Where(e=>e.EventDate>=currentDate).ToList();
}
来自以下公司的报价:
当需要对规则、验证和选择标准进行建模时,请使用规范模式
在您的需求中似乎就是这种情况,所以去看看规范
模式。当您将它与组合模式结合起来,创建一个流畅的API来描述各种规则时,它会变得非常强大。
当需要对规则、验证和选择标准进行建模时,请使用规范模式
在您的需求中似乎就是这种情况,所以去看看规范
模式。当您将它与复合模式结合起来,创建一个用于描述各种规则的流畅API时,它会变得非常强大