微网站用什么做的,专门做衣服特卖的网站有哪些,好的装修网站,qq推广引流网站SpringBoot整合Redis#xff0c;配置RedisTemplate序列化。如果使用StringRedisTemplate#xff0c;那么不需要配置序列化#xff0c;但是StringRedisTemplate只能存储简单的String类型数据#xff0c;如图#xff1a; 如果使用StringRedisTemplate存储一个常规对象#…SpringBoot整合Redis配置RedisTemplate序列化。如果使用StringRedisTemplate那么不需要配置序列化但是StringRedisTemplate只能存储简单的String类型数据如图 如果使用StringRedisTemplate存储一个常规对象只能转换成JSON字符串存储取出后再把JSON字符串转成需要的对象比较麻烦所以一般使用RedisTemplate。
一、RedisTemplate配置使用
使用RedisTemplate之前一般需要配置序列化方式这里以单节点Redis为例
1、添加maven依赖 !-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency 2、添加配置
import lombok.extern.slf4j.Slf4j;
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.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;/*** Redis配置*/
Slf4j
Configuration
public class RedisConfig {/*** 实例化 RedisTemplate 对象* 设置序列化方式* 默认序列化为JdkSerializationRedisSerializer* JdkSerializationRedisSerializer 占用空间小序列化速度慢客户端可读性差* GenericJackson2JsonRedisSerializer 占用空间大序列化速度快客户端可读性好** return*/Beanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory factory) {log.info(redisTemplate init. serializerGenericJackson2JsonRedisSerializer);RedisTemplateString, Object redisTemplate new RedisTemplate();StringRedisSerializer stringRedisSerializer new StringRedisSerializer();// 设置 key 的序列化器 StringRedisSerializerredisTemplate.setKeySerializer(stringRedisSerializer);redisTemplate.setHashKeySerializer(stringRedisSerializer);// 设置 value 的序列化器 GenericJackson2JsonRedisSerializerGenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer new GenericJackson2JsonRedisSerializer();redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);redisTemplate.setConnectionFactory(factory);return redisTemplate;} 3、使用
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;/*** Redis常用方法*/
Component
public class RedisCache {/*** 1分钟单位秒*/private static final long ONE_MINUTE 60;Autowiredprivate RedisTemplate redisTemplate;/*** 存储* param key 唯一键* param value 值* param expireTime 过期时间单位秒* param T*/public T void set(String key, T value, long expireTime) {redisTemplate.opsForValue().set(key, value, expireTime, TimeUnit.SECONDS);}/*** 查询* param key 唯一键* param T* return*/public T T get(String key) {return (T) redisTemplate.opsForValue().get(key);}
4.总结
RedisTemplate默认使用的是JDK 序列化方式(JdkSerializationRedisSerializer) 这种序列化方式可以不用在配置类里配置默认即可这种不推荐使用,这种方式对应客户端来说可读性差不利于人工排查问题。
所以一般用JSON序列化JSON序列化方式又有两种GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializerGenericJackson2JsonRedisSerializer配置更简单方便些。
对比一下JDK 序列化和JSON序列化的可读性如图
JDK 序列化
JSON序列化