【发布时间】:2010-11-14 22:24:49
【问题描述】:
我有一个社交网络
users 表大约有 60,000 行
friends 表在 100 万左右 行(用于确定谁是您的
朋友)
我想做一个朋友提要,墙,无论你喜欢怎么称呼它,它都会显示用户状态帖子(twitter 类型的帖子)之类的东西,它会显示一些不同的项目,但一开始它只是朋友状态,也许还有博客文章。
基本上,您只会看到使用您朋友列表中的用户 ID 发布的内容。
我一直在努力想出最好的方法,但还没有走多远,但这是我的最新想法。
目前要构建这个提要,我必须
获取好友ID列表 大朋友桌
从好友那里获取流数据 以上结果中的ids
加入用户表以获取 发布者图片 URL 和用户名
然后加入 cmets 表得到 cmets 发布在 Feed 项上
构建该提要是一项艰巨的任务
到目前为止,我有 3 个想法,这就是您可以提供帮助的地方。
内存缓存选项:
- 使用 memcache 缓存用户 当用户的朋友列表作为一个数组 登录网站,当用户 批准一个新的好友请求 要添加到那里的朋友,它 将在那里重建缓存。
- 除了获取朋友之外,我还可以在那里保存朋友的图片 URL 和用户名,这将通过在构建朋友提要时消除此查询来再次加快速度。
文件缓存选项:
执行与 memcache 选项相同的操作 只是将此数据保存为数组 到缓存文件而不是内存, 然后将此缓存文件包含到 页面。
我不确定哪个是最好的 我理解的表现方法 memcache 将所有内容存储在内存中 所以拥有20,000的朋友 可以使用很多的朋友 内存和文件缓存只会 当用户将其放入内存中 如果我是正确的,需要它。另外如果我 做了文件方法,当用户 退出网站,我会删除 有缓存文件所以缓存文件夹 文件永远不会太大
会话缓存选项:
- 和上面的文件缓存一样,我刚刚意识到会话数据被保存到一个文件中,那不就让它成为一个缓存吗?
请给我您对此的意见或任何建议或信息,因为我对缓存知之甚少,我读过很多书,但有时其他人的想法很有帮助
【问题讨论】:
-
“会话数据保存到文件中”。你上面的说法是错误的。会话可以配置为存储在数据库中。默认会话处理程序是文件。
标签: php session caching memcached