1

我很难弄清楚如何使用 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")

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

4

1 回答 1

0

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

于 2017-09-27T10:54:26.770 回答