我很难确定如何使用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")
我看到了对编解码器的一些讨论,但如果这是解决方案,我不清楚。有人能指出我正确的方向吗?这似乎应该是一个常见的用例。
答案 0 :(得分:0)
异常告诉您Redisson已检索的数据不是有效的JSON格式字符串。您可以更改数据格式或使用StringCodec而不是基于JSON的编解码器。