結合redis緩存的方式,查詢和展示分類信息


package cn.itcast.travel.service.impl;

import cn.itcast.travel.dao.CategoryDao;
import cn.itcast.travel.dao.impl.CategoryDaoImpl;
import cn.itcast.travel.domain.Category;
import cn.itcast.travel.service.CategoryService;
import cn.itcast.travel.util.JedisUtil;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

/**
* @author newcityman
* @date 2019/10/6 - 18:33
*/
public class CategoryServiceImpl implements CategoryService {
private CategoryDao category = new CategoryDaoImpl();

/**
* 查詢所有分類信息
* @return
*/
@Override
public List<Category> findAll() {
//1、從redis中查詢
//1.1、獲取jedis客戶端
Jedis jedis = JedisUtil.getJedis();
//1.2、可使用sortedset排序查詢
Set<String> categorys = jedis.zrange("category", 0, -1);
//2、判斷查詢的集合是否為空
List<Category> cs = null;
if(categorys==null || categorys.size()==0){
System.out.println("從數據庫中訪問數據。。。。");
//3、如果是空,需要從數據庫中查詢,並且存入redis中
//3.1、從數據庫中查詢
cs = category.findAll();
//3.2、將集合數據寫到redis緩存中
for (int i=0 ;i<cs.size();i++) {
jedis.zadd("category",cs.get(i).getCid(),cs.get(i).getCname());
}
}else {
//4、如果不為空,將set的數據存入到list中\
System.out.println("從redis中訪問數據");
cs= new ArrayList<Category>();
for (String name : categorys) {
Category category = new Category();
category.setCname(name);
cs.add(category);
}
}
return cs;
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM