grain-Edu-Note part22 spring结合redis并使用友好的序列化方式

it2025-11-18  4

pom

<!-- spring boot redis 缓存引入--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- lecttuce 缓存连接池--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>

yml

spring: profiles: active: dev application: name: service-cms cloud: nacos: discovery: server-addr: localhost:8848 sentinel: transport: port: 8081 dashboard: localhost:8080 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/grain_cms?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8 username: root password: 1234 jackson: date-format: yyyy-MM-dd HH:mm:SS time-zone: GMT+8 redis: host: 192.168.101.12 # redis服务器的地址 port: 6379 # redis服务的端口 database: 0 # redis 默认链接第0个数据库,一共有16个数据库 # password: 1234 lettuce: # redis链接池 pool: max-active: 20 #最大连接数,负值表示没有限制,默认为8 max-wait: -1 #最大阻塞等待时间,负值表示没有限制,默认为-1 max-idle: 8 #最大空闲连接,默认为8 min-idle: 0 #最小空闲连接,默认为0 timeout: 5000

config

package com.ezerbel.grain.service.base.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import java.io.Serializable; @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Serializable> redisTemplate(LettuceConnectionFactory connectionFactory){ RedisTemplate<String,Serializable> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); // key 设置键的序列化方式 , 替换原来JDK中默认的序列化方式 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // value 设置值的序列化方式 return redisTemplate; } }

controller

@PostMapping("save-test") public R saveAd(@RequestBody Ad ad){ redisTemplate.opsForValue().set("ad",ad); return R.ok(); }

before

after

最新回复(0)