当您存储包含类似于喜欢或视图计数的数据时,cassandra是否可用?我认为问题是:
1)对行(墓碑)的不断更新
2)使用计数器或LWT CAS操作会增加延迟并且变得复杂。如果更新视图计数会很麻烦,因为那是最频繁的操作。
使用计数器将是对计数器'table'的写入,而读取100条记录则需要100次读取或在计数器表上进行选择。
使用LWT将读取行并进行比较并设置,直到您的更新结束。读取100条记录将是正常的
答案 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