学了蛮久的,突然今天要搞一下这个先放截图

 我是打印了取值,为null  之前是空指针异常 ,网上说法众多 ,说因为配置文件有两个 1..@Autowoid 或者@Seruce 出错或者别的,我都试了一遍,结果都不行;

痛定思痛,我发现了华点 我们首先不要从redis存储数据,要用Idea存储数据


  public Map<String,Object> gettt(){
//存储数据
            redisTemplate.opsForHash().put("1006", "bzq", 2022-7-8);
            redisTemplate.opsForHash().put("1006", "name", "安倍晋三死了");
            redisTemplate.opsForHash().put("1006", "dianzan", 11100);
            redisTemplate.opsForHash().put("1007", "bzq", 2022-7-7);
            redisTemplate.opsForHash().put("1007", "name", "七七事变纪念");
            redisTemplate.opsForHash().put("1007", "dianzan", 1112);
            redisTemplate.opsForHash().put("1008", "bzq", 2022-7-8);
            redisTemplate.opsForHash().put("1008", "name", "俄乌冲突");
            redisTemplate.opsForHash().put("1008", "dianzan", 1118);
//


            ArrayList<Food> list = new ArrayList<>();

//这里数据类型是zset
      Set<String>topn = redisTemplate.opsForZSet().reverseRange("topn", 0,-1);
                for (Object o :topn.toArray()){
//遍历获取 数据类型是hash
                    String key = String.valueOf(o);
                    Food f = new Food();
                    Object a = redisTemplate.opsForHash().get(key, "name");
                    Object a1 = redisTemplate.opsForHash().get(key, "bzq");
                 Object a2 = redisTemplate.opsForHash().get(key, "dianzan");

                    Integer oi = (Integer) o;
                    f.setId(oi);
                    f.setName(a.toString());
                    f.setBzq(a1.toString());
                    f.setDianzan((Integer)a2);
                    list.add(f);


                }



//返回数据

            HashMap<String,Object> map = new HashMap<>();
            map.put("code","0");
            map.put("msg","成功");
            map.put("count","10");
            map.put("data",list);
            return map;

        }

总结: 一定要自己存数据 ,可能数据不互通导致你的数据获取不到,所以都试了一遍没有作用就用这个

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐