计数器
使用计数器可以很好的应用于点击,造成的访问次数的改变。
命令行
- 进入到shell,执行incr '表名 ’rowKey’‘计数器名称’ 数字。
- 默认的数字位置是1,即执行一次加1,可根据实际需求自定义改数字。
Java API
单列计数器
- t.incrementColumnValue方法参数是:rowkey,列族,计数器名称,改变幅度
返回的是当前计数器名字对应的value值。
public static void times() throws IOException {
Configuration conf = HBaseConfiguration.create();
try (Connection conn = ConnectionFactory.createConnection(conf)) {
String tableName = "user";
Table t = conn.getTable(TableName.valueOf(tableName));
// 单个计数器
Long ti = t.incrementColumnValue(bs("0001"), login, bs("time"), 1);
System.out.println(ti);
}
}
多列计数器
- 通过increment 新建一个对象,可以将多条列添加计数器,只需要指明哪条列即可。
public static void times() throws IOException {
Configuration conf = HBaseConfiguration.create();
try (Connection conn = ConnectionFactory.createConnection(conf)) {
String tableName = "user";
Table t = conn.getTable(TableName.valueOf(tableName));
Increment incr = new Increment(bs("0001"));
incr.addColumn(info, bs("times"), 1);
incr.addColumn(login, bs("time"), 2);
Result result = t.increment(incr);
result.listCells().forEach(r -> {
System.out.println(Bytes.toString(CellUtil.cloneQualifier(r)));
});
}
}