原子计数器是将列当成一个原子计数器来使用,为某些在线应用提供实时统计功能,例如统计帖子的PV(实时浏览量)等。

说明 原子计数器的详细介绍参见原子计数器

接口说明

RowUpdateChange类中新增了原子计数器的操作接口:
  • RowUpdateChange Increment(Column column):对列执行增量变更(如:+X、-X等)。
  • ReturnColumnNames:指定对哪一列进行原子计数器操作。
  • ReturnType = ReturnType.RT_AFTER_MODIFY:设置返回类型,并返回该列的新值。

示例

写入数据时,使用RowUpdateChange接口对整型列进行列值的增量变更,示例代码如下。
public static void Increment(int incrementValue)
{
    Console.WriteLine("Start set increment column...");
    OTSClient otsClient = Config.GetClient();

    // 定义行的主键,必须与创建表时TableMeta中定义的一致
    PrimaryKey primaryKey = new PrimaryKey
    {
        { Pk1, new ColumnValue(0) },
        { Pk2, new ColumnValue("abc") }
    };
    RowUpdateChange rowUpdateChange = new RowUpdateChange(TableName, primaryKey);
    rowUpdateChange.ReturnType = ReturnType.RT_AFTER_MODIFY;
    rowUpdateChange.ReturnColumnNames = new List<string>() { IncrementCol};
    //设置一个原子自增列,这一列从0开始自增,每次增加incrementValue。
    rowUpdateChange.Increment(new Column(IncrementCol, new ColumnValue(incrementValue)));

    UpdateRowRequest updateRowRequest = new UpdateRowRequest(rowUpdateChange);

    var response = otsClient.UpdateRow(updateRowRequest);
    Console.WriteLine("set Increment column succeed,Increment result:" + response.Row.GetColumns()[0].Value);
}