微服务Spring Boot 整合 Redis 实现 好友关注

⛅引言

本博文参考 黑马 程序员B站 Redis课程系列

一、Redis 实现好友关注 – 关注与取消关注

具体实现思路:基于该表数据结构,实现2个接口

tb_follow

CREATE TABLE `tb_follow` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键,
  `user_id` bigint(20) unsigned NOT NULL COMMENT 用户id,
  `follow_user_id` bigint(20) unsigned NOT NULL COMMENT 关联的用户id,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;

id为自增长,简化开发

核心代码

FollowController

FollowService

代码编写完毕,进行测试

代码测试

测试成功

二、Redis 实现好友关注 – 共同关注功能

核心代码如下

UserController

// UserController 根据id查询用户
@GetMapping("/{id}")
public Result queryUserById(@PathVariable("id") Long userId){
          
   
    // 查询详情
    User user = userService.getById(userId);
    if (user == null) {
          
   
        return Result.ok();
    }
    UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class);
    // 返回
    return Result.ok(userDTO);
}

BlogController

@GetMapping("/of/user")
public Result queryBlogByUserId(
    @RequestParam(value = "current", defaultValue = "1") Integer current,
    @RequestParam("id") Long id) {
          
   
    // 根据用户查询
    Page<Blog> page = blogService.query()
        .eq("user_id", id).page(new Page<>(current, SystemConstants.MAX_PAGE_SIZE));
    // 获取当前页数据
    List<Blog> records = page.getRecords();
    return Result.ok(records);
}

改造核心代码:

FlowServiceImpl

进行测试

⛵小结

经验分享 程序员 微信小程序 职场和发展