redis写入数据和获取数据不一致问题

博客讨论了在使用不同Redis客户端时遇到的数据乱码问题。redisCacheImpl使用Object序列化器存储数据,而redisClient采用String序列化器。尽管字节相同,但两种方式处理字节流的方式不同,导致Java客户端在获取数据时出现乱码。解决这个问题需要确保所有客户端使用统一的序列化机制。
摘要由CSDN通过智能技术生成

问题描述

有两个redis的客户端 ,一个是redisClient ,另一个是redisCacheImpl

当使用redisCacheImpl存入数据而使用redisClient获取数据时发生了数据的乱码

解析

redisCacheImpl存取数据时使用的是Object的序列化器

 		ByteArrayInputStream bos = new ByteArrayInputStream(buf);
        ObjectInputStream ios = new ObjectInputStream(bos);

redisClient存取数据时使用的是String类型的序列化器

this.stringSerializer = (Serializer)(stringSerializer == null ? new DefaultStringSerializer() : stringSerializer);

结论:两个客户端存的数据的字节虽然是一样的,但是redis查看数据和Java客户端获取字节流后的处理却并不相同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值