Redis 中可以更新部分值吗?

Seb*_*bVb 4 redis jedis

我必须在项目中使用Redis和Jedis,以便从生成的密钥快速访问一些数据。存储的值将是一些复杂的Java对象。

是否可以仅更新该值的一部分,而不之前获取它?

例如,如果我序列化这样的类的对象

public class MyObject {

    private MySubObject1 myObj1;
    private MySubObject2 myObj2;
    private MySubObject3 myObj3;

}
Run Code Online (Sandbox Code Playgroud)

如果 MyObject 与 Redis 中的某个键关联,我可以从该键仅更新 myObj2 字段吗?或者我必须先获取值,更新字段然后再次将其放入 Redis 中?

Kar*_*all 5

如果你想这样更新。您可以使用哈希代替平面键值存储。

这是片段

    hset("MyObject","myObj1",(serialized value of myobj1))
hset("MyObject","myObj2",(serialized value of myobj2)) ...

If you want to change myObj2 alone 

do hset("MyObject","myObj2",(new value))
Run Code Online (Sandbox Code Playgroud)