以下是我的代码:
Demo2 demo2 = new Demo2();
demo2.setAge(b);
demo2.setName(a.toString());
redisTemplate.opsForValue().set("0851_aak",demo2);
Object o = redisCache.get("0851_aak");
Demo2 demo21 = (Demo2) o;
补充说明:
redis配置时,采用了JdkSerializationRedisSerializer序列化配置。
取出Object时,object指向的是demo2的实例,用getclass方法验证过了,但是当执行Demo2 demo21 = (Demo2)o;会报java.lang.ClassCastException: demo.asdasd.Demo2 cannot be cast to demo.asdasd.Demo2异常。
那就是因为你存的和取的Demo2 不处于同个类加载器导致的。你可以用Demo2 demo21 = redisTemplate.opsForValue().get("0851_aak");
Redis,不能直接存储对象,如果实体对象可以序列化,可以将序列化后的内容存入一个Value中。