1. 程式人生 > >spring boot 整合redis 以一個熱門房產為例子

spring boot 整合redis 以一個熱門房產為例子

1.新增redis依賴 就是jedis

redis.clients
jedis
2.9.0

2.每次點選房屋詳情熱度加一 呼叫此方法

recommandService.increase(id);//每次點選房屋熱度加1

3.recommandService如何寫主要三個方法
//redis儲存熱門房產的key
private static final String HOT_HOUSE_KEY = “hot_house”;
@Autowired
private HouseService houseService;

/**
 * 每次點選房產詳情呼叫此方法房產熱度加1
 *
 * @param id
 */
public void increase(Long id) {                                            
    Jedis jedis = new Jedis("127.0.0.1"); //連線本地redis 用jedis 進行操作
    jedis.zincrby(HOT_HOUSE_KEY, 1.0D, id + "");//該方法建立個列表  對應房屋id    熱度每次加1.0D  是有順序的
    jedis.zremrangeByRank(HOT_HOUSE_KEY, 10, -1);//限制一下redis範圍
    jedis.close();
}

public List<Long> getHot() {
    Jedis jedis = new Jedis("127.0.0.1");
    Set<String> idSet = jedis.zrevrange(HOT_HOUSE_KEY, 0, -1);//獲取列表中所有的房屋id 
    List<Long> ids = idSet.stream().map(Long::parseLong).collect(Collectors.toList()); //轉換 long 型別  轉換方法是java8新特性
    jedis.close();
    return ids;
}

public List<House> getHotHouse(Integer size) {
     House query = new House();
    List<Long> list=getHot();
    list=list.subList(0,Math.min(list.size(),size));
    if(list.isEmpty()){
        return Lists.newArrayList();
    }
    query.setIds(list);
    return houseService.queryAndSetImg(query, PageParams.bulid(size, 1));
}
  有問題可以在下評論