redis用java框架jdeis,存在序列化异常

redis用java框架jdeis,存在序列化异常:

org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?;

 问题发生代码如下:

public class RedisTest extends JunitBase{

    @Autowired
    private RedisTemplate redisTemplateSeventeen;
    @Test
    public void testRedis()throws Exception{
        ValueOperations v =   redisTemplateSeventeen.opsForValue();
        Object obj = v.get("nopnrcarriers");
        System.out.println(String.valueOf(obj));
    }
}

实际需要配置字符串序列化,默认用的jdk序列化会出现上述问题切换成字符串序列化就OK了

在redis配置文件中加入:

<!-- Jedis 172.16.6.17 db3库 连接池配置 -->
    <bean id="jedisConnectionFactorySeventeen" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">
        <property name="poolConfig" ref="jedisPoolConfig"></property>
        <property name="hostName" value="${redisst.hostName}"></property>
        <property name="port" value="${redisst.port}"></property>
        <property name="timeout" value="${redisst.timeout}"></property>
        <property name="usePool" value="${redisst.usePool}"></property>
        <property name="password" value="${redisst.password}" ></property> 
        <property name="database" value="${redisst.db}"></property>
    </bean>
    <bean id="redisTemplateSeventeen" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactorySeventeen" /> 
       <property name="keySerializer" ref="stringRedisSerializer" />
        <property name="hashKeySerializer" ref="stringRedisSerializer" />
        <property name="valueSerializer" ref="stringRedisSerializer"/>
    </bean>

 

posted @ 2018-07-24 16:04  稚语希听  阅读(1177)  评论(0)    收藏  举报