注明:本文章旨在整理近期开发中的心得,距离卓越还有很大差距,如果有问题可以评论,互相学习。
由于我在做某个系统,在设计的时候没有在mysql表中设计购物车数据库,而在微信小程序中,微信小程序自带的缓存StorageSync在我重新登录时缓存会清空,那么为了使购物车中的数据进行半持久化,抱着试一试的心态,决定使用redis来实现购物车缓存。
如果没法在springboot中连接linux中的redis,可以看我之前的blog:
springboot项目没法连接linux中的redis解决办法_Wannabe_hacker的博客-优快云博客
一、maven中导入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>jcl-over-slf4j</groupId>
<artifactId>org.slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/io.lettuce/lettuce-core -->
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
</dependencies>
二、在application.properties中加入redis
由于虚拟机有问题,我就先用windows的redis进行测试,然后换用linux的redis就好,经过之前配置好redis之后,只需要在其中换一个ip就好了
# redis配置
spring.redis.database=9 # 这边用redis中哪个数据库都没关系
spring.redis.host=127.0.0.1
spring.redis.port=6379
额外需要配置的也可以进行配置
注意现在新的redis中lettuce代替jedis
三、编写RedisConfig.class进行配置
没什么好说的,网上代码通用
package com.xxxx.common;
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.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
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.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import javax.naming.event.ObjectChangeListener;
import java.net.UnknownHostException;
@Configuration
public class RedisConfig {
@Bean
@SuppressWarnings("all")
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(factory);// 配置连接工厂
// 使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式)
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer