Redis实现热度推荐

1 用户点击详情页,给当前商品增加热度;

public void increase(Long id) {

try {

Jedis jedis =new Jedis("127.0.0.1");

    jedis.zincrby(HOT_HOUSE_KEY, 1.0D, id +"");

    jedis.zremrangeByRank(HOT_HOUSE_KEY, 0, -11);// 0代表第一个元素,-1代表最后一个元素,保留热度由低到高末尾10个

    jedis.close();

  }catch (Exception e) {

logger.error(e.getMessage(),e);

  }

}

2 热度商品推荐(查询redis热度商品)

public ListgetHot() {

try {

Jedis jedis =new Jedis("127.0.0.1");

    Set idSet = jedis.zrevrange(HOT_HOUSE_KEY, 0, -1);

    jedis.close();

    List ids = idSet.stream().map(Long::parseLong).collect(Collectors.toList());

    return ids;

  }catch (Exception e) {

logger.error(e.getMessage(), e);

    return Lists.newArrayList();

  }

}

你可能感兴趣的:(Redis实现热度推荐)