SpringBoot整合Redis实现点赞、收藏功能(一)

前言

点赞、收藏功能作为常见的社交功能,是众多Web应用中必不可少的功能之一。而redis作为一个基于内存的高性能key-value存储数据库,可以用来实现这些功能。

本文将介绍如何使用spring boot整合redis实现点赞、收藏功能,并提供前后端页面的编写代码。

准备工作
在开始之前,您需要进行以下准备工作:

安装JDK
安装Redis,并启动Redis服务
安装Node.js和Vue.js,以便我们能够开发前端页面
后端实现
在后端中,我们需要使用spring boot来整合redis,并进行相关的接口设计和实现。下面是实现点赞和收藏的核心代码。

相关依赖
首先,在pom.xml文件中添加redis相关依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.10.0</version>
</dependency>

Redis配置
接下来,我们需要配置Redis连接信息,可以在application.yml中进行配置。

spring:
  redis:
    host: localhost
    port: 6379

点赞功能实现
下面是点赞redis部分功能的接口实现代码。

@RestController
@RequestMapping("/like")
public class LikeController {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @PostMapping("/add")
    public String addLike(@RequestParam String userId, @RequestParam String objectId) {
        String key = "like:" + objectId;
        long result = redisTemplate.opsForSet().add(key, userId);
        return result > 0 ? "点赞成功" : "不能重复点赞";
    }

    @PostMapping("/delete")
    public String deleteLike(@RequestParam String userId, @RequestParam String objectId) {
        String key = "like:" + objectId;
        long result = redisTemplate.opsForSet().remove(key, userId);
        return result > 0 ? "取消点赞" : "未进行点赞";
    }

    @GetMapping("/count")
    public long countLike(@RequestParam String objectId) {
        String key = "like:" + objectId;
        return redisTemplate.opsForSet().size(key);
    }
}

收藏功能实现
下面是收藏功能的接口实现代码。

@RestController
@RequestMapping("/favorite")
public class FavoriteController {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @PostMapping("/add")
    public String addFavorite(@RequestParam String userId, @RequestParam String objectId) {
        String key = "favorite:" + userId;
        long result = redisTemplate.opsForSet().add(key, objectId);
        return result > 0 ? "收藏成功" : "不能重复收藏";
    }

    @PostMapping("/delete")
    public String deleteFavorite(@RequestParam String userId, @RequestParam String objectId) {
        String key = "favorite:" + userId;
        long result = redisTemplate.opsForSet().remove(key, objectId);
        return result > 0 ? "取消收藏" : "未进行收藏";
    }

    @GetMapping("/count")
    public long countFavorite(@RequestParam String userId) {
        String key = "favorite:" + userId;
        return redisTemplate.opsForSet().size(key);
    }

    @GetMapping("/list")
    public Set<String> listFavorite(@RequestParam String userId) {
        String key = "favorite:" + userId;
        return redisTemplate.opsForSet().members(key);
    }
}

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

princeAladdin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值