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;

  • 相关阅读:
    排序三 直接插入排序
    编写你的第一个django应用程序2
    编写你的第一个web应用程序1
    你被体制化了吗
    服务器安装tensorflow导入模块报错Illegal instruction (core dumped)
    查看数据库里有没有数据
    python实现贪吃蛇
    在pycharm中执行脚本没有报错但输出显示Redirection is not supported.
    linux安装redis
    pycharm快捷键
  • 原文地址:https://www.cnblogs.com/LvJiaXuanBlogs/p/7098884.html
Copyright © 2011-2022 走看看