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