我正在使用以下Aerospike客户端版本:
<dependency>
<groupId>com.aerospike</groupId>
<artifactId>aerospike-client</artifactId>
<version>4.1.6</version>
</dependency>
我设置了Aerospike客户端并尝试检索一条记录,该记录是ID和令牌之间的映射,如下所示:
{<bin_name> = map{"<some_id>"="<some_token>::<token_ttl>"}}
我得到的记录如下(Record.toString()
,doc link):
(gen:1),(exp:263680981),(bins:(<bin_name>:{"<some_id>"="<some_token>::<token_ttl>"}))
但是,当我尝试直接检索bin时(Record.getMap
或Record.getValue
),我得到以下信息:
{"<some_id>"="<some_token>"}
之前有没有人见过这种自动过滤TTL行为?
关于如何不过滤TTL部分的任何想法?感谢。
答案 0 :(得分:0)
发现问题......
看起来像com.aerospike.client.Record&#39; s功能&#34; getMap&#34; (或任何其他get函数)返回实例变量的引用,我正在修改它的值并将其放回到相同的引用中...
我想在将它分配给变量时没有复制它是不好的,或者Record
类是否真的会返回其变量的副本?