关于 web 缓存系统的疑问,如果 10w 用户,访问自己的个人主页,那么是不是上 memcached 缓存也没有意义?

2017-07-26 20:04:28 +08:00
 qq12345454

我对缓存了解的不多

大概就知道,如果用户请求一次这个数据,就存在内存里,免去了数据库查询的时间和性能消耗

如果下一次查询一样的数据,就直接从内存里返回给浏览器

但是如果每次查询的数据不一样呢?

比如 10w 个用户查看自己的个人主页,这时候每个用户查询的数据是不一样的

是不是意味着这 10w 多的数据会放在内存里? 那岂不是会把内存用光了

而且,我感觉好像随便用户请求什么数据,每次请求的数据,基本都不太可能一样,那缓存的究竟是什么?

菜鸟问问

求指点

1677 次点击
所在节点    问与答
12 条回复
misaka19000
2017-07-26 20:12:32 +08:00
这种非热点数据可以不缓存,比如某个的频率极高,这种时候可以对此页面进行数据缓存用户是大 V,他的主页被访问
misaka19000
2017-07-26 20:13:14 +08:00
楼上文字顺序乱了,不过应该还是能看懂得。。
maemual
2017-07-26 20:20:18 +08:00
你把缓存的粒度变细,总会有可以抽象出来的基本数据。比如用户的基本数据,用户的 id、昵称、性别之类的属性,不是只有在个人主页用到,全站的各个地方,任何人打开的页面都可能用到的数据。
jarlyyn
2017-07-26 20:23:50 +08:00
每个人 500k 数据的话,大概需要 50g 内存。

都不用上服务器,消费级平台都能上 64g 内存。
akira
2017-07-26 20:26:29 +08:00
和你想 的差不多,热点数据做缓存才有意义。

至于你说用户请求的数据不一样,一个网页实际上是由多块组成的,一样的地方总是会有的。
v1024
2017-07-26 20:28:27 +08:00
LRU Cache
sagaxu
2017-07-26 21:21:47 +08:00
假设 10 万用户是同一天访问,网站估值已经过亿了,买几台像样的缓存服务器还买不起了?
bestkayle
2017-07-26 21:54:54 +08:00
存 redis 不行嘛
rogueone
2017-07-26 23:00:12 +08:00
热点数据用缓存要非常小心,因为缓存没过期,你干着急没办法的。比如用户发了一个帖子,如果个人主页缓存没过期,他刷主页自己的帖子都出不来。微博那种已经是非常多的手段综合起来实现的效果,针对不同的用户活跃度,推、拉、队列都有用过,以前看过微博的技术分享,现在肯定又改了不少。

10 万用户如果活跃度都不错的话,缓存不好使了,可以考虑给每个用户单独写一个队列了,每个用户请求自己的队列。
lyragosa
2017-07-26 23:11:53 +08:00
如果到了有 10w 用户同时访问你网站的时候……

哪里还用得着上 v2 啊,要么就是公司 CTO,随便说点技术逼格词汇让手下解决,要么就是网站老板,每天在办公室吹吹风指挥手下就行了
piku
2017-07-27 08:21:56 +08:00
这个应该和 Web 特性有关。10w 用户中变量只有 id page index 等是变量,头文件脚文件 css 等有共性的是可缓存。如果每个用户的这些都不一样就没法缓存了,变成了 10w 独立主机了
julyclyde
2017-07-29 12:34:27 +08:00
这问题描述就有问题
什么叫自己的
谁的自己?
如果是访客访问他们自己的网页,跟你有啥关系……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/378178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX