zoukankan      html  css  js  c++  java
  • Cache的疑惑??

    由于想得脑袋都痛了,所以先放首页一回会儿,让大家一起讨论一下,还请dudu见谅
    在设计Web应用程序的时候,性能可以说是最需要考虑的地方,使用cache是一个不错的选择,一直以来,我感觉Cache用来缓存小数量数据比较合适,但是今天在看Petshop的代码的时候 看到如下代码

        if(Cache[categoryKey] != null){
                    
    // If the data is already cached, then used the cached copy
                    products.DataSource = (IList)Cache[categoryKey];
                }
    else{
                    
    // If the data is not cached, then create a new products object and request the data
                    Product product = new Product();
                    IList productsByCategory 
    = product.GetProductsByCategory(categoryKey);
                    
    // Store the results of the call in the Cache and set the time out to 12 hours
                    Cache.Add(categoryKey, productsByCategory, null, DateTime.Now.AddHours(12), Cache.NoSlidingExpiration , CacheItemPriority.High, null);
                    products.DataSource 
    = productsByCategory;
                }
    代码不难理解。petshop是吧每一个分类的产品列表列据categorykey不同全部放在了缓存中,无疑,这样做访问时不用每次都访问数据库,在性能上有很大的提高,但是我在想,在petshop的演示数据库中 只有5个分类,而且第个分类也只有为数不多的产品,如果,分类,多达上百种,每个分类里面又有近千种的产品,用这种方式是否还合适,如果 不合适的话,为什么当初这个用演示,.Net的设计思想以及性能的程序 为什么采用了这种设计方法,难道只是用来表的小数据量为前题下的性能????
    本来 我对Cache认识还是蛮清晰的,现在 被这段代码弄糊涂了,cache到底 缓存多少数据库量比较合适。
    几十条。
    几百条。
    几千条。
    上万条。
    还是存个几百万条。
    是不是我想太多了??
    还请大家帮我解除这个疑惑,
  • 相关阅读:
    Failed to parse PID from file /run/nginx.pid: Invalid argument
    Ubuntu16.04环境下bashrc文件位置
    virtualenvwrapper.sh报错: There was a problem running the initialization hooks.解决
    pip安装virtualenvwrapper报错的解决办法
    争鸣|函数性质的综合应用辨析
    总结|静雅斋之2020高考备考回顾总结
    2020年全国卷Ⅱ卷文科数学图片版
    奇怪|说好的求最大值变成了求最小值
    探究|平面向量探究题
    平面向量错误收集
  • 原文地址:https://www.cnblogs.com/9527/p/115425.html
Copyright © 2011-2022 走看看