基于SpringBoot+redis如何实现一个点赞功能?

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

基于SpringBoot+redis如何实现一个点赞功能?

解析:

基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。

点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的。 点赞、取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存。

至于多久从 Redis 取一次数据存到数据库中,根据项目的实际情况定吧,我是暂时设了两个小时。

项目需求需要查看都谁点赞了,所以要存储每个点赞的点赞人、被点赞人,不能简单的做计数。

文章分四部分介绍:

Redis 缓存设计及实现

  • 数据库设计
  • 数据库操作
  • 开启定时任务持久化存储到数据库

一、Redis 缓存设计及实现

1.1 Redis 安装及运行

Redis 安装请自行查阅相关教程。

说下Docker 安装运行 Redis

docker run -d -p 6379:6379 redis:4.0.8

如果已经安装了 Redis,打开命令行,输入启动 Redis 的命令

redis-server

1.2 Redis 与 SpringBoot 项目的整合

1. 在 pom.xml 中引入依赖

?

| 12 | org.springframework.bootspring-boot-starter-data-redis |

2. 在启动类上添加注释 @EnableCaching

?

| 1234567891011 | @SpringBootApplication``@EnableDiscoveryClient``@EnableSwagger2``@EnableFeignClients``(basePackages = "com.solo.coderiver.project.client"``)``@EnableCaching``public class UserApplication {  public static void main(String[] args) {``SpringApplication.run(UserApplication.``class``, args);``}``} |

3. 编写 Redis 配置类 RedisConfig

?

| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | import com.fasterxml.jackson.annotation.JsonAutoDetect;``import com.fasterxml.jackson.annotation.PropertyAccessor;``import com.fasterxml.jackson.databind.ObjectMapper;``import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;``import org.springframework.context.annotation.Bean;``import org.springframework.context.annotation.Configuration;``import org.springframework.data.redis.connection.RedisConnectionFactory;``import org.springframework.data.redis.core.RedisTemplate;``import org.springframework.data.redis.core.StringRedisTemplate;``import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import java.net.UnknownHostException;  @Configuration``public class RedisConfig {  @Bean``@ConditionalOnMissingBean``(name = "redisTemplate"``)``public RedisTemplate redisTemplate(``RedisConnectionFactory redisConnectionFactory)``throws UnknownHostException {  Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.``class``);``ObjectMapper om = new ObjectMapper();``om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);``om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);``jackson2JsonRedisSerializer.setObjectMapper(om); RedisTemplate template = new RedisTemplate();``template.setConnectionFactory(redisConnectionFactory);``template.setKeySerializer(jackson2JsonRedisSerializer);``template.setVal

你可能感兴趣的:(it,redis,spring,boot,java)