Redis添加List

    StackExchange.Redis组件中未提供List<T>直接添加Redis.List的方法,需要手动循环加入。

    

var cacheName = string.Format(GameSalesSystemConsts.CacheDistrbution,userId.ToString(), type.ToString());
var idList = new List<long>();
RedisValue[] redisList = { };

//翻页 先判断是不是第一页
if (page == -1)
{
redisList = await _database.ListRangeAsync(cacheName);
}
else
{
redisList = await _database.ListRangeAsync(cacheName, page * 20, page * 20 + 20);
}

//如果redis中没有数据则加入Redis
if (redisList.Count() <= 0)
{
var data = (await GetByUserIdAsync(userId, type)).Select(p=>p.SourceUserId).ToList();
foreach (var item in data)
{
_database.ListRightPush(cacheName, item);
}
redisList = await _database.ListRangeAsync(cacheName);
}

//从redis中循环取出来List
foreach (var item in redisList)
{
var i = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(item);
idList.Add(i);
}

//IdList取出对应的数据

var amount = await GetAmountBySourceUserId(idList);
var name = await _userService.GetUserNameDescAsync(idList);
var profile = await _userService.GetUserImgDescAsync(idList);

//返回数据结果

List<DistributionOutPut> list = new List<DistributionOutPut>();

for (int i = 0; i < idList.Count; i++)
{
DistributionOutPut output = new DistributionOutPut()
{
rank = i+1,
amount = amount[i].ToString(),
img = profile[i],
name = name[i]
};
list.Add(output);
}

return list;

 

转载于:https://www.cnblogs.com/LvJiaXuanBlogs/p/7098884.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值