当我在缓存数据库上执行获取操作时,如果缓存中包含字母和数字或数字的组合,则我的缓存数据库中有一些数据,如果它是仅包含数字的单个键,则我无法获取数据即使我能够查看列表中的数据也能够检索数据。

Map (ele): list
2222222 =
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

GC2 =
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get GC2
 200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get 2222222
null


当我在get中仅给出数字时,我将得到null。

有任何想法吗?

最佳答案

我自己弄清楚了,如果我们将键定义为String类型,并且由于一致性服务器的内部工作,它仅包含数字,则它将返回null。

简而言之

键定义为字符串-键包含字母数字-WORKS

键定义为字符串-键仅包含字母-作品

键定义为字符串-键仅包含数字-不起作用

所以我要做的是,在将数据放入缓存之前,我检查了键是否只包含数字,使用

if (code.matches("[0-9]+"))


如果是,则将密钥存储为整数,否则将其存储为字符串。

现在,我可以检索所有情况的值。

另一个解决方案-

而不是将密钥存储为整数,即使它是存储为字符串的数字也是如此,

得到\ 111

这也检索正确的值

07-24 09:45
查看更多