灌篮少年 发表于 2023-8-30 02:35:54

微服务集成redis并通过redis实现排行榜的功能

默认你已经看过我之前的教程了,并且拥有上个教程完成的项目,
之前的教程 https://www.cnblogs.com/leafstar/p/17638933.html
由于redis的安装网上教程很多,再次不再赘述,现在默认你已经安装好了redis
 
1.在需要redis的微服务下面添加下面依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> 
2.在项目的配置文件添加
spring:<br>redis:<br>    host: 127.0.0.1<br>    port: 6379 
3.在需要的地方添加
@Autowired<br>StringRedisTemplate stringRedisTemplate;即可使用。
 
4.在bank1的controller里面添加下面接口
@GetMapping("/writeRedis")
public String writeRedis(String msg){
    stringRedisTemplate.opsForValue().append("msg",msg);
    return stringRedisTemplate.opsForValue().get("msg");

5.简单调用
https://img2023.cnblogs.com/blog/3015553/202308/3015553-20230818181244906-1266921366.png
 
6.通过图形化界面工具RESP查看,写入成功
https://img2023.cnblogs.com/blog/3015553/202308/3015553-20230818181322697-1214717095.png
 
 7.接下来实现一个redis排行榜的功能
我们在bank1的controller里面添加下面两个接口
@PostMapping("addScore")
public void addScore(@RequestBody List<User>list){
    for (User user : list) {
      stringRedisTemplate.opsForZSet().add("list",user.getName(),user.getAmount());
    }<br>}
@GetMapping("/getList")
public Set<ZSetOperations.TypedTuple<String>> getLeaderboard() {
    return stringRedisTemplate.opsForZSet().reverseRangeWithScores("list",0,-1);

8.通过postman调用添加要排行的数据
https://img2023.cnblogs.com/blog/3015553/202308/3015553-20230818183705941-622197644.png
 
9.可以看到,redis里面已经按照score大小排序
https://img2023.cnblogs.com/blog/3015553/202308/3015553-20230818183745898-207254470.png
 
10.浏览器调用getList接口,结果如下
https://img2023.cnblogs.com/blog/3015553/202308/3015553-20230818183845243-1240329669.png
 成功实现排行榜的功能
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 微服务集成redis并通过redis实现排行榜的功能