SpringBoot集成redis使用redisTemplate插入后key有乱码value显示为空,Redis Desktop Manager报错Cannot open value tab: Can

1.报错信息:

服务器上的redis客户端:
在这里插入图片描述
Redis Desktop Manager
Cannot open value tab: Cannot load keybecause itdoesn t exist in database. Please reload connection tree andtry again.
在这里插入图片描述

2.解决:添加配置类提供两种配置方式(注释的为方式一)

两种方式存入resdis中的内容略有不同。
(1)添加redis的配置类

import com.diploma.entity.person.User;
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.Jackson2JsonRedisSerializer;

@Configuration
public class RedisConfig {
	@Bean
	public RedisTemplate<Object, Object> userRedisTemplate(RedisConnectionFactory factory) {
		/*(方式一)// 创建RedisTemplate对象
		RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
		// 设置连接工厂
		redisTemplate.setConnectionFactory(factory);
		// 设置默认的序列化器
		Jackson2JsonRedisSerializer<User> serializer = new Jackson2JsonRedisSerializer<>(User.class);
		redisTemplate.setDefaultSerializer(serializer);
		return redisTemplate;*/




		//设置序列化Key的实例化对象
		redisTemplate.setKeySerializer(new StringRedisSerializer());
		//设置序列化Value的实例化对象
		redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
		return redisTemplate;
	}
	
}

(2)注入自己配置类编码后的RedisTemplate,使用此模板操作redis就ok了。
注意:使用第一种方式时注入的模板名称要和自己配置类中的模板名称相同,不然会存储不进去。
在这里插入图片描述

3.原因分析:

看网上介绍说redis的默认序列化方式使用的是jdk的序列化方式,添加配置后将其序列化为json格式就好了。
内容有误的话请指正。。。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像夏天一样热

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值