对于我正在研究的项目,我需要实现类似于Facebook的新闻源,区别在于它会以类似于聊天室的速率刷新,并且源将由用户贡献(仅状态更新)。我打算使用Thrift,在客户端使用php,在服务器上使用C ++。
因为刷新率需要这么高,所以在服务器上,我一直在考虑将最后约20个条目保存在内存中的链表(或类似结构)中的feed中,以便快速访问(因为任何人只需刷新需求)将任何旧条目发送到mysql数据库进行存储时,最新的条目。
这似乎是这种实现的正确架构吗?如果是这样,将旧条目发送到数据库的好方法是什么?
答案 0 :(得分:1)
将所有项目直接发送到数据库,但保留最近100个左右的列表。
如果您正在使用存储库模式,请将列表保留在存储库类中,并添加名为GetLatest
的方法。您的应用程序的其余部分不应该关心它们是否被缓存。
如果你使用的是nhibernate,你可以打开缓存并让nhibernate为你处理它。
答案 1 :(得分:0)
考虑在数据库前使用memcached。这就是它的设计目标。
但在你做之前,只需实现没有缓存的东西。看看它如何。也许它会在相当无聊的实现中正常工作
答案 2 :(得分:0)
很抱歉这个简单的答案,但我会在他们到达服务器时将数据发送到数据库,而不是“老化”。没有必要等待。然后,您可以将数据库用作存储库,并在新客户端到达最后20个条目时进行查询。