文章目录
实现思路只用在点赞成功之后,往redis缓存中,存入当前用户redis的标示就行了.
引入redis的依赖
- 引入redis的依赖
- Controller
- 测试
- 关于视频中重复点赞问题的个人纠正
在docker中启动redis. 导入redis的依赖
org.springframework.boot
spring-boot-starter-data-redis
在yml中,加入redis的配置,写上redis的地址
@Autowired
private RedisTemplate redisTemplate;
/**
* 方法名: thumbup
* 方法描述: 进行点赞
* 修改日期: 2019/1/19 18:01
* @param spitId
* @return entity.Result
* @author taohongchao
* @throws
*/
@RequestMapping(value = "/thumbup/{spitId}",method = RequestMethod.PUT)
public Result thumbup(@PathVariable String spitId){
//判断当前的用户是否已经点赞了,由于没有搞登录认证,先把userid写死
String userId = "111";
//判断当前用户是否已经点赞了
if (redisTemplate.opsForValue().get("thumbup_" + userId) != null) {
return new Result(false, StatusCode.REMOTEERROR, "不能重复点赞");
}
//调用service层,进行点赞
spitService.thumbup(spitId);
//如果用户点赞成功,就把点赞的信息,存入redis中
redisTemplate.opsForValue().set("thumbup_"+userId,1);
return new Result(true, StatusCode.OK, "点赞成功");
}
测试
发送点赞的请求,进行点赞. 对同一个吐槽的id进行点赞请求时,提示如下
在视频中,对于重复点赞,只把用户的id存入了redis的缓存,作为了key. 那么导致的结果是只能对一个吐槽进行点赞,即使是第一次点赞别的吐槽,也会提示不能重复点赞. 因此要把用户的id和吐槽的id, 共同作为redis的键进行.