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));
}
有问题可以在下评论