cassandra可用于喜欢/查看计数

时间:2017-05-27 13:57:11

标签: cassandra

当您存储包含类似于喜欢或视图计数的数据时,cassandra是否可用?我认为问题是:

1)对行(墓碑)的不断更新

2)使用计数器或LWT CAS操作会增加延迟并且变得复杂。如果更新视图计数会很麻烦,因为那是最频繁的操作。

使用计数器将是对计数器'table'的写入,而读取100条记录则需要100次读取或在计数器表上进行选择。

使用LWT将读取行并进行比较并设置,直到您的更新结束。读取100条记录将是正常的

1 个答案:

答案 0 :(得分:2)

为这些类型的作业构建了计数器。

  

计数器是一个特殊列,用于存储以增量方式更改的数字。例如,您可以使用计数器列来计算查看页面的次数   Apache Cassandra™2.1计数器列改进了计数器的实现,并提供了许多配置选项来调整计数器

您可以创建如下的计数器表:

CREATE TABLE video_counter (
    video_id uuid PRIMARY KEY,
    like_count counter,
    view_count counter
);

每当收到视频的喜欢或观看请求时,请递增计数。

//Like
UPDATE video_counter SET like_count = like_count + 1 WHERE video_id = ? ;

//View
UPDATE video_counter SET view_count = view_count + 1 WHERE video_id = ? ;

现在,您可以非常有效地获得相似内容并查看视频数量

SELECT * FROM video_counter WHERE video_id = ? ;

来源:http://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html

相关问题