@Test public void t5() { List<DataShowVo> dataShowVos =new ArrayList<>(); Set<Object> keyDataList = redisTemplate.opsForSet().members("keyDateList"); for (Object key : keyDataList) { List<Object> dateList = redisTemplate.opsForList().range(key.toString(), 0, -1); System.out.println(dateList); String date = RedisKeyGenerator.formatDate(key.toString()); DataShowVo list = DataShowVo.builder().data(date).keyName(key.toString()).list(dateList).build(); dataShowVos.add(list); } dataShowVos.forEach(System.out::println); } 为什么第二次的dateList没有数据,在别的方法里可以查到
时间: 2024-04-19 22:29:37 浏览: 103
根据你提供的代码,第二次的 `dateList` 没有数据的可能原因有以下几个:
1. Redis 数据为空:首先,你需要确保在第二次运行这段代码之前,在 Redis 中的键 `key.toString()` 对应的列表中确实存在数据。你可以通过打印 `keyDataList` 的结果来确认 Redis 中是否有数据。
2. 键名不正确:确保在第二次运行时,`key.toString()` 的值与第一次运行时是一致的。如果键名不正确,那么就无法获取到正确的列表数据。
3. RedisTemplate 配置问题:如果在其他方法中可以从 Redis 中获取到数据,但是在这个方法中获取不到,可能是由于 RedisTemplate 的配置问题。请确保你的 RedisTemplate 配置正确,并且连接到正确的 Redis 实例。
检查以上几个方面,应该能找到导致第二次的 `dateList` 没有数据的原因。希望能帮到你解决问题!如果还有其他疑问,请随时追问。
阅读全文