【发布时间】:2016-04-11 21:06:58
【问题描述】:
在 Cassandra 计数器中,如果我尝试在不存在的行中增加计数器,它会创建将值设置为零的行,然后根据请求增加值。
我的问题是我可以将默认值更改为不为零而是其他值。例如:前一个桶或类似的东西(row2 = row1+value)
【问题讨论】:
在 Cassandra 计数器中,如果我尝试在不存在的行中增加计数器,它会创建将值设置为零的行,然后根据请求增加值。
我的问题是我可以将默认值更改为不为零而是其他值。例如:前一个桶或类似的东西(row2 = row1+value)
【问题讨论】:
您不能将计数器的值设置为仅递增或递减。
计数器列值是一个 64 位有符号整数。您无法设置 计数器的值,它支持两种操作:递增和 递减。
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/counter_type.html
【讨论】:
您可以像这样设置计数器的初始值:
CREATE TABLE counters (
counter_name text,
counter_value counter,
PRIMARY KEY (counter_name)
);
UPDATE counters SET counter_value = counter_value + 100500 WHERE counter_name='FooCounter';
SELECT * from counters;
counter_name | counter_value
--------------+---------------
FooCounter | 100500
之后根据需要使用计数器:
UPDATE counters SET counter_value = counter_value + 1 WHERE counter_name='FooCounter';
SELECT * from counters;
counter_name | counter_value
--------------+---------------
FooCounter | 100501
【讨论】: