redis中Zset值为一个对象的问题

我是这样获取set的


Set<DefaultTypedTuple<TransactionRecord>> set = redisTemplate.opsForZSet().rangeWithScores(key, 0, -1);

分别获取score和value,value是对象,但是我只存了几个参数,debug下显示没有的属性都为null,如下图

img


但是我使用add操作存进去的时候,自动过滤了Null的值,redis里的值为

[
  "com.XXX.TransactionRecord",
  {
    "id": 3,
    "status": "0"
  }
]

现在我进行删除操作的时候无法删除,难道是要新增的时候不要过滤空属性吗?还是有什么别的解决办法

可以把对象序列化成过滤掉空值的JSON字符串,这样新增的时间就不带空属性了。删除时间用相同的序列化方式也能删除。

使用序列化的json是一种方式,

如果你是用java开发的话,也可以直接存储序列化的对象进去,这样的话,你也可以直接反序列化对象来直接使用。