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

猜你喜欢

转载自blog.csdn.net/weixin_39361197/article/details/83578198