【发布时间】:2012-08-31 02:32:43
【问题描述】:
我想用 Cassandra 来存储一个计数器。例如,给定页面被查看了多少次。 计数器永远不会递减。计数器的值不需要精确,但随着时间的推移应该是精确的。
我的第一个想法是将值存储为列并读取当前计数,将其递增 1,然后将其放回。但是,如果另一个操作也试图递增计数器,我认为最终值会只需成为具有最新时间戳的那个。
另一个想法是将每个页面加载作为新列存储在 CF 中。然后我可以在该键上运行get_count() 并获取列数。通读documentation,看来根本不是什么高效的操作。
我是不是错误地处理了这个问题?
【问题讨论】:
-
我今天早些时候给你的 url 运气好吗?
-
这正是我对 get_count() 的建议。也许最好的方法是将它们作为列存储在 CF 中,运行 get_count() 并将其缓存在一个“计数器”中,该计数器会根据我的应用程序需要的任何频率进行更新。
-
通常我不会问这个问题,但是请考虑更改您接受的答案,因为技术已经发生了变化,并且 get_count 已被正式弃用。
-
随着技术的变化改变了我选择的答案。
标签: cassandra