关于Spring Data Redis存储时key value数据的乱码问题

上面全是废话,解决方案看最后!!!

最近在做一个关于页面登录的项目,要求邮件的激活码发到客户邮箱时,激活码保存24小时./

此时实现需要是想将用户存放到redis中,设置一个存放时间是1 TimeUnit.DAYS,所以依赖jar包已经全部导入,applicationContext中已经配置,到redix中是一串乱码

redis 127.0.0.1:6379> keys *
1) "\xac\xed\x00\x05t\x00\x06street"
设置时也没有中文.所以找了很久,

最后发现是配置文件出了问题

	
	   
                
          
          
      
	
	  
        
      
         
      	
        
            
        
        
        	 
        	
         

因为spring操作redis是在jedis客户端基础上进行的,而jedis客户端与redis交互的时候协议中定义是用byte类型交互,jedis中提供了string类型转为byte[]类型,但是看到spring-data-redis中RedisTemplate在操作的时候k,v是泛型的,所以RedisTemplate中有了上面那段代码,在没有特殊定义的情况下,spring默认采用defaultSerializer = new JdkSerializationRedisSerializer();来对key,value进行序列化操作,在经过查看JdkSerializationRedisSerializer中对序列化的一系列操作.以上代码的问题在于使用的bean class 是
bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"s
所以将其更改为


这样应该没问题了.

上述有问题的建议大家查找以下的原因:

applicationContext.xml文件,上述代码块,除了改正过来的其他都对,其次就是jar的依赖引用

		
		
		
			redis.clients
			jedis
			${jedis.version}
		
		
		
			org.springframework.data
			spring-data-redis
			1.4.1.RELEASE
		

希望对大家有用


你可能感兴趣的:(关于Spring Data Redis存储时key value数据的乱码问题)