[Session VS File VS Memcache for PHP Cache in PHP?

问题描述 投票:25回答:4

我有一个社交网络

  • 用户表大约有60,000行

  • 朋友桌大约100万行(用于确定谁是您的朋友)

我想做一个朋友供稿,墙,无论您喜欢叫什么,它都会显示诸如用户状态信息(推特类型信息)之类的东西,它将显示一些不同的项目,但是一开始它只是朋友。状态,也许还有博客文章。

基本上,您只会看到以您的朋友列表中的用户ID发布的内容。

我一直在努力寻找最好的方法,但距离还很远,但这是我的最新想法。

当前要构建此提要,我必须

  1. 获取好友ID的列表大朋友表

  2. 从朋友那里获取流数据来自上述结果的ID

  3. JOIN用户表以获取发布者的图片网址和用户名

  4. 然后加入评论表以获取提要项上发布的评论

这是构建该提要的一项重要任务

到目前为止,我有3个想法,这是您可以提供帮助的地方。

Memcache选项:

  1. 使用内存缓存并缓存用户当用户将好友列表作为数组时登录该站点,也当用户登录批准新朋友的请求朋友要添加到那里列表,它将重建那里的缓存。
  2. 除了可以结交朋友外,我还可以在其中保存朋友的图片URL和用户名,这将通过在构建朋友供稿时消除此查询来再次加快速度。

文件缓存选项:

  1. 与memcache选项相同确实但将此数据保存为数组到缓存文件而不是内存,然后将此缓存文件包含到页面。

  2. 我不确定哪个最好我了解表现的方法memcache将所有内容存储在内存中所以有20,000个朋友可能会大量使用的朋友内存和文件缓存只会当用户将其存储在内存中时如果我是正确的,就需要它。如果我也当用户时执行文件方法注销该站点,我将删除那里有缓存文件,所以缓存文件夹文件永远不会太大]]

  3. 会话缓存选项:

  1. 与上面的文件高速缓存一样,我只是意识到会话数据已保存到文件中,因此难道不可以将其用作高速缓存吗?
  2. 请给我您的意见或任何建议或信息,因为我对缓存的了解不多,我读了很多,但有时其他人的想法也有帮助

我有一个社交网络,users表大约有60,000行,friends表大约有100万行(用于确定谁是您的朋友),我想做一个朋友供稿,墙,不管您是什么...

php session caching memcached
4个回答
33
投票

由于许多原因,Memcache是​​您最好的选择:

  1. 速度非常快-一切都在内存中,并且针对您的情况进行了高度优化(以及通常的缓存:)

1
投票

Memcache中允许的默认最大对象大小为1MB。


1
投票

Redis将是一个很好的解决方案:


0
投票

错! Memcached的大小不固定!它取决于您设置的计算机内存和配置。

© www.soinside.com 2019 - 2024. All rights reserved.