zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    [USACO06NOV]Corn Fields(状压DP)
    关灯问题II (状态压缩 BFS)
    天梯---至多删三个字符(DP)
    天梯
    蓝桥
    天梯
    天梯
    天梯
    天梯
    蓝桥
  • 原文地址:https://www.cnblogs.com/LvJiaXuanBlogs/p/7098884.html
Copyright © 2011-2022 走看看