Redis快取例項3:Sortedset型別
阿新 • • 發佈:2020-07-27
1 @Override 2 public List<Category> findAll() { 3 //1.從redis中查詢 4 //1.1獲取jedis客戶端 5 Jedis jedis = JedisUtil.getJedis(); 6 //1.2可使用sortedset排序查詢 7 Set<String> categorys = jedis.zrange("category", 0, -1); 8 List<Category> cs = null; 9 //2.判斷查詢的集合是否為空 10 if(categorys == null || categorys.size() == 0) { 11 12 System.out.println("從資料庫查詢...."); 13 //3.如果為空,需要從資料庫查詢,在將資料存入redis 14 //3.1 從資料庫查詢 15 cs = categoryDao.findAll(); 16 //3.2 將集合資料儲存到redis中的 category的key 17 for (int i = 0; i < cs.size(); i++) { 18 19 jedis.zadd("category", cs.get(i).getCid(), cs.get(i).getCname());20 } 21 } else { 22 System.out.println("從redis中查詢....."); 23 24 //4.如果不為空,將set的資料存入list 25 cs = new ArrayList<Category>(); 26 for (String name : categorys) { 27 Category category = new Category(); 28 category.setCname(name); 29 cs.add(category);30 31 } 32 } 33 34 return cs; 35 }