我的问题是关于最佳做法。
我将所有简单的用户页面视图发送到redis。我想做的是每个用户,
应该有一个用户看过的页面列表。 该列表需要限制最多20个项目。 最后,该列表需要有一个到期时间(密钥到期)。 实现是(我使用StackExchange.Redis用于应用程序):
var transaction = _cache.CreateTransaction();
transaction.ListLeftPushAsync(key, JsonConvert.SerializeObject(value), When.Always, CommandFlags.FireAndForget);
transaction.KeyExpireAsync(key, TimeSpan.FromDays(Constants.Constants.TopnUserCacheDurationinDays), CommandFlags.FireAndForget);
if (new Random().Next(7) == 6)
{
transaction.ListTrimAsync(key, 0, Constants.Constants.TopNUserHistoryLimit, CommandFlags.FireAndForget);
}
return transaction.ExecuteAsync();
问题是,这种实施是否有利于我的需求。我觉得smth不对。因为一秒钟内有大约300个请求。因此,我每秒发送1次请求,包含3次作业300次。
有什么建议吗?