public List<Category> findAll() {
Jedis jedis = JedisUtil.getJedis();
Set<Tuple> cSet = jedis.zrangeWithScores("category", 0, -1);
List<Category> clist = null;
Category category =null;
//直接从redis读取
if (cSet != null && cSet.size() != 0) {
/*
记得初始化list,不然会报错,list为空,
不new ArrayList,直接用list,会为空,
而且要在for循环外边初始化,否则每次都会初始化,都是新的一个list,最后list只保存了最后那个数据
*/
clist = new ArrayList<>();
for (Tuple tuple : cSet) {
category = new Category();
category.setCid((int) tuple.getScore());
category.setCname(tuple.getElement());
clist.add(category);
}
}
//第一次在数据库读取,在存入redis
else {
clist = dao.findAllCategory();
for (int i = 0; i < clist.size(); i++) {
jedis.zadd("category", clist.get(i).getCid(), clist.get(i).getCname());
}
}
return clist;
}