Java使用redis操作存储对象时的序列化操作

如果直接在java上使用Redistemplate在数据库实际存储时会出现一些奇奇怪怪的乱码,所以使用Stringredistemplate,如果存储普通数据可以直接使用,如果存储对象,则要进行序列化操作

@SpringBootTest
class DemoApplicationTests {

    //用于序列化和反序列化操作
    private static final ObjectMapper mapper=new ObjectMapper();
   @Autowired
    private StringRedisTemplate stringRedisTemplate;
   @Test
    void testString() throws IOException {
       //序列化部分
       //创建对象
       User user=new User("xxxx",18);
       //手动序列化
       String json=mapper.writeValueAsString(user);
       //写入数据
       stringRedisTemplate.opsForValue().set("User:test",json);
       //反序列化部分
       //获取数据
       String jsonUser=stringRedisTemplate.opsForValue().get("User:test");
       //手动反序列化
       User user1=mapper.readValue(jsonUser,User.class);
   }
}

还有存哈希的

 //哈希部分
   @Test
    void HashTest()
   {
       stringRedisTemplate.opsForHash().put("user:test2","name","xxx");
       stringRedisTemplate.opsForHash().put("user:test2","age","18");
       Map<Object,Object> entries=stringRedisTemplate.opsForHash().entries("user:test2");
   }

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值