我在我的项目中使用了cassandra,并使用hector与cassandra连接,我在我的keyspace中定义了一个列族用户,并且用户中有一个列名“reputation”,现在我想增加用户的声誉,怎么办?你能帮助我吗?
问问题
151 次
1 回答
2
您可以使用计数器创建列族:
ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition(keyspaceName, "UserCounters");
cfDef.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName());
cfDef.setComparatorType(ComparatorType.UTF8TYPE);
cfDef.setDefaultValidationClass(ComparatorType.COUNTERTYPE.getClassName());
cfDef.setColumnType(ColumnType.STANDARD);
cfDef.setKeyspaceName(keyspaceName);
然后,每当您想增加用户声誉时,您都可以增加它
int amountToIncrease = 1;
HCounterColumn<String> hcol = HFactory.createCounterColumn("reputation", amountToIncrease);
Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get());
mutator.addCounter("Bob Smith", "UserCounters", hcol);
mutator.execute();
有了这个,每个用户都有一行,其中有一个声誉计数器。
UserCounters {
username: {
reputation: <counter>
},
username2: {
reputation: <counter>
}
}
然后,如果您想为该用户添加其他计数器(例如“评论”或“浏览量”或其他内容),您可以轻松添加它
于 2013-09-03T14:54:42.087 回答