V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qq12345454
V2EX  ›  问与答

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

  •  
  •   qq12345454 · 2017-07-26 20:04:28 +08:00 · 1668 次点击
    这是一个创建于 2484 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我对缓存了解的不多

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

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

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

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

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

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

    菜鸟问问

    求指点

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

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

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

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

    哪里还用得着上 v2 啊,要么就是公司 CTO,随便说点技术逼格词汇让手下解决,要么就是网站老板,每天在办公室吹吹风指挥手下就行了
    piku
        11
    piku  
       2017-07-27 08:21:56 +08:00 via Android   ❤️ 1
    这个应该和 Web 特性有关。10w 用户中变量只有 id page index 等是变量,头文件脚文件 css 等有共性的是可缓存。如果每个用户的这些都不一样就没法缓存了,变成了 10w 独立主机了
    julyclyde
        12
    julyclyde  
       2017-07-29 12:34:27 +08:00
    这问题描述就有问题
    什么叫自己的
    谁的自己?
    如果是访客访问他们自己的网页,跟你有啥关系……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1163 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:57 · PVG 02:57 · LAX 11:57 · JFK 14:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.