zoukankan      html  css  js  c++  java
  • Web Cache

    我们都知道,网站对于一些常用数据做缓存,会加速网站访问,像下面这样:

    public string GetFoo()
    {
        if ( cache.get("Foo") == null )
        {
            cache.set("Foo", GetFooFromDb());
        }
        return cache.get("Foo");
    }
    

    上面的方法如果GetFooFromDb()的开销很小或者运行时间很短,则影响不大,无非就是高并发的时候多执行几次GetFooFromDb()和设置缓存的值,但是如果GetFooFromDb()开销很大或者运行时间很长,或者是很多数据缓存的集合,则需要保证GetFooFromDb()方法只被执行一次:

    private static object GetFooLock = new object();
    
    public string GetFoo()
    {
        if ( cache.get("Foo") == null )
        {
            lock(GetFooLock)
            {
                if ( cache.get("Foo") == null )
                {
                    cache.set("Foo", GetFooFromDb());                
                }
            }
        }
        return cache.get("Foo");
    }
    
  • 相关阅读:
    折线图平滑
    Matplotlib字体大小设置
    折线图
    柱状图
    zip()函数
    matplotlib基础
    unique()函数
    sorted()与sort()函数
    Oracle数据库文件导出为CSV格式的方法
    Numpy和Pandas
  • 原文地址:https://www.cnblogs.com/windchen/p/6542928.html
Copyright © 2011-2022 走看看