springboot使用redis缓存乱码(key或者value乱码)的解决
作者:追梦者123
在通过springboot缓存数据的时候,发现key是一堆很不友好的东西,本文主要介绍了springboot使用redis缓存乱码(key或者value乱码)的解决,感兴趣的可以了解一下
如果查看redis中的值是这样


创建一个配置类就可以解决
package com.deka.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.core.script.RedisScript;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.scripting.support.ResourceScriptSource;
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory redisConnectionFactory;
@Autowired
private RedisTemplate redisTemplate;
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {
redisTemplate.setConnectionFactory(factory);
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
redisTemplate.setDefaultSerializer(serializer);
//设置序列化Key的实例化对象
redisTemplate.setKeySerializer(new StringRedisSerializer());
//设置序列化Value的实例化对象
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
@Bean
public RedisMessageListenerContainer redisContainer() {
final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory);
return container;
}
@Bean
public RedisScript<Long> limitRedisScript() {
DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>();
redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("scripts/limit.lua")));
redisScript.setResultType(Long.class);
return redisScript;
}
}到此这篇关于springboot使用redis缓存乱码(key或者value乱码)的解决的文章就介绍到这了,更多相关springboot redis缓存乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringBoot项目中使用redis缓存的方法步骤
- SpringBoot 开启Redis缓存及使用方法
- springboot+mybatis+redis 二级缓存问题实例详解
- 浅谈SpringBoot集成Redis实现缓存处理(Spring AOP实现)
- SpringBoot2整合Redis缓存三步骤代码详解
- SpringBoot+SpringCache实现两级缓存(Redis+Caffeine)
- 详解SpringBoot集成Redis来实现缓存技术方案
- SpringBoot2.3整合redis缓存自定义序列化的实现
- SpringBoot使用Redis缓存MySql的方法步骤
- SpringBoot使用Redis缓存的实现方法
- SpringBoot redis分布式缓存实现过程解析
