HGETALL如何使用redisson

时间:2017-09-26 18:41:37

标签: java redis redisson

我很难确定如何使用redisson redis库访问地图密钥。我希望能够(使用redisson)访问由不使用redisson的系统创建的密钥。假设我使用redis-cli ...

sasus:16379> hset user fname "Nancy"
(integer) 1
sasus:16379> hset user lname "Schmancy"
(integer) 1
sasus:16379> hset user email "nanc@example.org"
(integer) 1
sasus:16379> hset user system "none"
(integer) 1
sasus:16379> hgetall user
1) "fname"
2) "Nancy"
3) "lname"
4) "Schmancy"
5) "email"
6) "nanc@example.org"
7) "system"
8) "none"

现在是一个简单的java方法来检索...

public static void getNancy() {
    Config config = new Config();
    config.useSingleServer().setAddress("redis://sasus:16379");
    RedissonClient redisson = Redisson.create(config);
    RMap user = redisson.getMap("user");
    System.out.println("user: " + user);
    redisson.shutdown();
}

这会引发JacksonParseException ...

Unrecognized token 'fname': was expecting 'null', 'true', 'false' or Nan

...致电getMap("user")

我看到了对编解码器的一些讨论,但如果这是解决方案,我不清楚。有人能指出我正确的方向吗?这似乎应该是一个常见的用例。

1 个答案:

答案 0 :(得分:0)

异常告诉您Redisson已检索的数据不是有效的JSON格式字符串。您可以更改数据格式或使用StringCodec而不是基于JSON的编解码器。