`java实现最近搜索词条`
首先先在项目中部署好redis,部署好之后多的话就不说了,直接搬出代码实现:
//首先注入RedisTemplate
private RedisTemplate<Object, Object> template;
//入参每次搜索时输入的字符串,每次都放入ZSet中
if (StringUtils.isNotBlank(searchStr)) {
//将查询参数添加到redis的zset中
template.opsForZSet().incrementScore("hwords", searchStr, 1);
}
//获取热词
public List getRedisScoreMaxVal() {
List list = new ArrayList();
//参数1(redis的K值),参数2(从第几条开始),参数3(从0开始截取多少位)
Set<ZSetOperations.TypedTuple<Object>> typedTupleSet = template.opsForZSet().reverseRangeWithScores("hwords", 0, 4);
Iterator iterator = typedTupleSet.iterator();
while (iterator.hasNext()) {
ZSetOperations.TypedTuple<Object> typedTuple = (ZSetOperations.TypedTuple<Object>) iterator.next();
Object value = typedTuple.getValue();
//获取score值
double score = typedTuple.getScore();
list.add(value);
}
return list;
}
这样就实现了通过redis获取热词。