redis+springboot使用set实现点赞
时间: 2023-12-26 09:03:41 浏览: 32
在redis中,可以使用set数据结构来实现点赞功能。具体实现步骤如下:
1. 定义一个RedisTemplate对象,用于操作redis数据库。
```
@Autowired
private RedisTemplate<String, Object> redisTemplate;
```
2. 定义一个点赞方法,该方法接收两个参数:用户id和文章id。在该方法中,首先判断该用户是否已经点赞过该文章,如果已经点赞,则返回“已经点赞过”;如果未点赞,则将该用户添加到该文章的点赞列表中,并返回“点赞成功”。
```
public String like(String userId, String articleId) {
String key = "article:" + articleId + ":likes";
if (redisTemplate.opsForSet().isMember(key, userId)) {
return "已经点赞过";
} else {
redisTemplate.opsForSet().add(key, userId);
return "点赞成功";
}
}
```
3. 定义一个取消点赞方法,该方法接收两个参数:用户id和文章id。在该方法中,首先判断该用户是否已经点赞过该文章,如果已经点赞,则将该用户从该文章的点赞列表中删除,并返回“取消点赞成功”;如果未点赞,则返回“还未点赞”。
```
public String unlike(String userId, String articleId) {
String key = "article:" + articleId + ":likes";
if (redisTemplate.opsForSet().isMember(key, userId)) {
redisTemplate.opsForSet().remove(key, userId);
return "取消点赞成功";
} else {
return "还未点赞";
}
}
```
4. 在需要使用点赞功能的地方,调用like和unlike方法即可实现点赞功能。
```
String userId = "1001";
String articleId = "2001";
String result = like(userId, articleId);
System.out.println(result);
String result2 = unlike(userId, articleId);
System.out.println(result2);
```
以上就是使用set实现点赞的方法,可以方便地实现点赞功能。