tair存入对象不能成功的原因和缓存一样,是序列化的问题,目前最麻烦的是路径名,也就是包名很有可能不相同,这个目前就没法解决了。
解决方法:转换成字符串的格式进行存储。
过长字符这个问题,是从上面延伸而来的,因为我们把对象转换成字符串了,但是由于对象可能会很大,所以字符串非常长。按理来说tair是推荐存储100k以内的数据,但是我存储6k的数据的时候就出现了严重的问题:实际上没存进去,但是返回给我保存成功。这非常坑爹,因为我们只能用存完立刻拿出来的方法看是否拿得出来,来判断是否保存成功了,因为接口是不会给你报错的。
解决方法:先在字符串的结尾追加结束符号,把字符串拆解成大小为1000的子字符串挨个保存。保存的key设为key+"#"+i,i从0递增,每个存小于等于1000的子字符串,直到保存完。在另一个工程取对象的时候,用key+"#"+i,i从0递增, 直到取到结束符号,把结束符号拿掉,转换成我们需要的对象。
剩余问题:现在没有明确的文档确认tair的value能存多少大小的字符串,还需要明确一下。