我在我的项目中使用cassandra,并使用hector连接cassandra,我在keypace中定义了一个列族用户,并且在用户中有一个列名“Reputation”,现在我想提高用户的声誉,如何做?你能救我吗?
答案 0 :(得分: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>
}
}
然后,如果您想为该用户添加其他计数器(例如“评论”或“浏览量”或其他内容),您可以轻松添加