V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
qq12345454
V2EX  ›  问与答

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

  •  
  •   qq12345454 · Jul 26, 2017 · 2347 views
    This topic created in 3197 days ago, the information mentioned may be changed or developed.

    我对缓存了解的不多

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

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

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

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

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

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

    菜鸟问问

    求指点

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

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

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

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

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