用java写,redis实现一个电影热度排行榜,使用redistemplate
时间: 2023-05-26 15:05:03 浏览: 253
下面是一个简单的示例代码,它使用RedisTemplate实现了一个简单的电影热度排行榜:
```java
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class MovieRankService {
private final RedisTemplate<String, Integer> redisTemplate;
private static final String REDIS_KEY = "MOVIE_RANK";
public MovieRankService(RedisTemplate<String, Integer> redisTemplate) {
this.redisTemplate = redisTemplate;
}
public void addMovie(Integer movieId) {
redisTemplate.opsForZSet().incrementScore(REDIS_KEY, movieId, 1);
}
public List<Integer> getTopMovies(int n) {
return redisTemplate.opsForZSet().reverseRange(REDIS_KEY, 0, n - 1);
}
}
```
在这个示例中,我们使用了Redis的有序集合数据结构来实现排行榜功能。排行榜中每个电影对应的分数即为它的热度值,每次添加电影时我们通过incrementScore方法自增1分数值。使用reverseRange方法可以获取到前n个分数最高的电影id,这里我们直接返回了id列表。
如果需要更加复杂的排行榜或者拓展,可以根据实际场景进行调整和扩展。
阅读全文