【问题标题】:How to update cassandra to increase column [closed]如何更新 cassandra 以增加列 [关闭]
【发布时间】:2013-09-06 17:40:23
【问题描述】:

我在我的项目中使用了cassandra,并使用hector与cassandra连接,我在keyspace中定义了一个列族用户,用户中有一个列名“reputation”,现在我想增加用户的声誉,如何做?你能帮帮我吗?

【问题讨论】:

    标签: java cassandra hector


    【解决方案1】:

    您可以使用计数器创建列族:

    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>
      }
    }
    

    然后,如果您想为该用户添加其他计数器(例如“cmets”或“pageviews”或其他内容),您可以轻松添加它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-15
      • 2015-09-06
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      相关资源
      最近更新 更多